Skip to main content

RouteDecision

Enum RouteDecision 

Source
pub enum RouteDecision<'a> {
    Explicit {
        source: &'a str,
        reference: &'a str,
    },
    Prefix {
        source: &'a str,
        prefix: &'a str,
        settings: &'a BTreeMap<String, Value>,
    },
    Default {
        source: &'a str,
        fallback: Option<&'a str>,
    },
}
Expand description

Outcome of resolving a path against a RouterConfig.

All variants borrow from the input config (lifetime 'a); the queried path is owned by the caller and is not copied into the decision. The caller computes the path-tail (path.strip_prefix (decision.prefix())) only when it needs to call into a source plugin.

Variants§

§

Explicit

[secret."<path>"] matched — both the source and the backend-specific reference are user-supplied.

Fields

§source: &'a str

Source name to dispatch to.

§reference: &'a str

Backend-specific reference handed to the source’s get (e.g. op://Work/Acme Jira/credential).

§

Prefix

One of the [[route]] prefixes matched. The source plugin is responsible for joining settings with the path tail to produce its actual reference.

Fields

§source: &'a str

Source name to dispatch to.

§prefix: &'a str

The matched prefix verbatim (always ends with /).

§settings: &'a BTreeMap<String, Value>

Source-specific extras from the [[route]] block (mount, vault, …). Pass-through to the source.

§

Default

No [secret] and no [[route]] matched — falls back to [default].source. The optional fallback hint lets the caller retry against [default].fallback when the primary reports is_available() == NotInstalled (per ADR-021 §2 step 3).

Fields

§source: &'a str

[default].source.

§fallback: Option<&'a str>

[default].fallback, if configured.

Implementations§

Source§

impl<'a> RouteDecision<'a>

Source

pub fn source(&self) -> &'a str

The source name selected for this path. Consumers that just want to know “who serves it?” don’t have to match on the variant.

Trait Implementations§

Source§

impl<'a> Clone for RouteDecision<'a>

Source§

fn clone(&self) -> RouteDecision<'a>

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<'a> Debug for RouteDecision<'a>

Source§

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

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

impl<'a> PartialEq for RouteDecision<'a>

Source§

fn eq(&self, other: &RouteDecision<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> StructuralPartialEq for RouteDecision<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for RouteDecision<'a>

§

impl<'a> RefUnwindSafe for RouteDecision<'a>

§

impl<'a> Send for RouteDecision<'a>

§

impl<'a> Sync for RouteDecision<'a>

§

impl<'a> Unpin for RouteDecision<'a>

§

impl<'a> UnsafeUnpin for RouteDecision<'a>

§

impl<'a> UnwindSafe for RouteDecision<'a>

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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 = Infallible

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