pub enum ActorSeamIr {
None,
Sum(Vec<SumMember>),
Bearer(BearerSeam),
Oidc(OidcSeam),
Caller(String),
}Expand description
#1187’s slice 3: a handler’s resolved actor-verification seam, wrapping
bynk-check’s own five already-resolved seam structs
(bynk-check/src/actors.rs) by value — confirmed none carry any
bynk_syntax::ast/TypeRef/Expr: every field is String/bool/
i64/Option/Vec (or, for BearerSeam::authorization,
ClaimPredicate, itself a plain recursive String/Box enum). Built by
bynk_lower::lower_actor_seam_ir, which tries the five resolvers in the one
priority order that actually matters — sum_members_for first, since
it’s the only resolver whose result can otherwise collide with
bearer_seam_for’s (a sum’s own first peer can itself be Bearer-schemed;
bearer_seam_for has no by.is_sum() guard of its own to prevent that).
The other three pairs are mutually exclusive by construction — each
single-actor resolver requires the primary actor’s own auth scheme to
match one specific Scheme variant, a closed set — so their relative
order here is a no-op, not a second load-bearing decision.
No Signature variant, deliberately: neither call site this slice
converts (emit_service’s deps-identity-binder chain, emit.rs;
emit_worker_compose’s HTTP-dispatch match, workers.rs) ever consults
signature_seam_for as part of this priority chain — Signature is a
separate, request-verification-only concept there (see
workers_entry.rs’s own HttpRoute.signature field), not one this
enum’s callers need. Adding an unreachable variant this slice’s own
lower_actor_seam_ir never constructs would be exactly the kind of
premature surface bynk-design-notes.md’s own conventions ask this
codebase to avoid.
Variants§
None
No by clause resolves to any of the four seams below (Visitor/
None-schemed, or no by clause at all).
Sum(Vec<SumMember>)
by who: A | B — an ordered sum of peer actors, first-wins.
Bearer(BearerSeam)
Oidc(OidcSeam)
Caller(String)
A cross-context on call … by c: Caller handler’s own binder name —
caller_binder_for’s return type is already the bare Option<String>
the other four resolvers reduce a whole struct down to one field for.
Trait Implementations§
Source§impl Clone for ActorSeamIr
impl Clone for ActorSeamIr
Source§fn clone(&self) -> ActorSeamIr
fn clone(&self) -> ActorSeamIr
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ActorSeamIr
impl RefUnwindSafe for ActorSeamIr
impl Send for ActorSeamIr
impl Sync for ActorSeamIr
impl Unpin for ActorSeamIr
impl UnsafeUnpin for ActorSeamIr
impl UnwindSafe for ActorSeamIr
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);