Skip to main content

Addressee

Struct Addressee 

Source
pub struct Addressee {
    pub id: Option<String>,
    pub role: Option<Role>,
    pub labels: BTreeMap<String, String>,
}
Expand description

Who must answer a gate. An ask_human/human to: declaration.

An addressee is what makes a gate’s record TRUE: “the finance lead approved this refund” is only worth writing down if someone else could not have satisfied it. Every declared condition must hold, so adding one always narrows — the same direction as security.policies matching, and for the same reason: an operator tightening a gate should never widen it by accident.

Declared either as a bare principal-id glob:

to: "*@finance.acme.example"

or structurally, when identity is better described than enumerated:

to: {role: user, labels: {team: finance}}

Labels are the durable form — people change, teams do not — and they come from a2a.principals[].labels, which is operator-declared and closed.

Fields§

§id: Option<String>

Principal-id glob (* suffix, or exact).

§role: Option<Role>§labels: BTreeMap<String, String>

Every pair must be present on the principal with that value.

Implementations§

Source§

impl Addressee

Source

pub fn parse(v: &Value) -> Result<Addressee, String>

Parse a to: declaration. A string is an id glob; an object names any of id, role, labels.

Source

pub fn matches(&self, p: &Principal) -> bool

Whether this principal is who the gate is waiting for.

Source

pub fn describe(&self) -> String

A human-readable rendering, for the question, the task and the refusal — a gate that will not accept your answer has to say whose it wants.

Trait Implementations§

Source§

impl Clone for Addressee

Source§

fn clone(&self) -> Addressee

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Addressee

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Addressee

Source§

fn default() -> Addressee

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Addressee

Source§

fn eq(&self, other: &Addressee) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Addressee

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more