pub struct PolicyIr {
pub cors: Option<CorsIr>,
pub security: SecurityIr,
pub max_body_bytes: Option<i64>,
}Expand description
P6.11’s real PolicyIr/CorsIr/SecurityIr ([DECISION D], #1171) —
the interpreted (not passed-through) form of a from http service’s
cors/security/limits blocks, bynk_lower::lower_policy_ir’s own
return value. The reference names PolicyIr once, in the
IrItem::Service sketch itself (:1132), and never elsewhere — the
same “referenced, not specified” gap every trailing struct in this
module has carried before its own slice specified it.
Interpreted, not passed through — the one discipline this struct
exists to enforce. Every AST policy type
(bynk_syntax::ast::CorsPolicy/SecurityPolicy/LimitsPolicy) stores
raw, unvalidated {name, value: Expr} pairs; meaning only exists
through each type’s own already-shipped typed accessor
(CorsPolicy::origins()/credentials()/allow_headers()/
max_age_secs(), SecurityPolicy::nosniff()/hsts_max_age_secs(),
LimitsPolicy::max_body()) — carrying the raw AST struct here instead
would embed exactly the kind of unresolved value this whole track
(R6.13) exists to remove from the IR. The shipped emitter already never
reads a policy’s own .fields directly (emitter/workers_entry.rs),
so this is that emitter’s own already-established reading of the AST,
moved upstream, not a new interpretation invented here.
Fields§
§cors: Option<CorsIr>§security: SecurityIrNot Option — unlike cors/limits, security: None on the
AST means defaults (nosniff on), not no headers (ADR 0164
Decision A) — keeping this Option here would re-export exactly
the ambiguity this struct exists to remove. The None-source arm
of bynk_lower::lower_policy_ir materialises SecurityIr { nosniff: true, hsts_max_age_secs: None } — the emitter’s own already-shipped
default, verbatim, not invented here.
max_body_bytes: Option<i64>LimitsPolicy::max_body()’s own return value, flattened directly —
no dedicated LimitsIr struct. LimitsPolicy has exactly one
accessor; a one-field wrapper would carry no more information than
this Option<i64> itself, the same “no further structure”
precedent EmbedIr/IndexIr already set.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PolicyIr
impl RefUnwindSafe for PolicyIr
impl Send for PolicyIr
impl Sync for PolicyIr
impl Unpin for PolicyIr
impl UnsafeUnpin for PolicyIr
impl UnwindSafe for PolicyIr
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);