Skip to main content

Var

Struct Var 

Source
pub(super) struct Var<'env, 'lookup, T, C = fn(&'static str, T) -> Result<T>> {
    lookup: &'lookup (dyn Fn(&str) -> Option<String> + 'env),
    read_file: &'lookup (dyn Fn(&Path) -> Result<String> + 'env),
    key: &'static str,
    check: C,
    aliases: Vec<&'static str>,
    file_source: Option<FileSource>,
    value: PhantomData<fn(T) -> T>,
}
Expand description

Parses the first present key and validates its value in check order.

Checks may transform values and capture other settings. They receive the supplying key, including aliases. Defaults use the primary key and pass through the same checks. Missing optional values bypass parsing and checks.

Fields§

§lookup: &'lookup (dyn Fn(&str) -> Option<String> + 'env)§read_file: &'lookup (dyn Fn(&Path) -> Result<String> + 'env)§key: &'static str§check: C§aliases: Vec<&'static str>§file_source: Option<FileSource>§value: PhantomData<fn(T) -> T>

Implementations§

Source§

impl<'env, 'lookup, T, C> Var<'env, 'lookup, T, C>
where T: EnvParse, C: Fn(&'static str, T) -> Result<T>,

Source

pub(super) fn check( self, check: impl Fn(&'static str, T) -> Result<T>, ) -> Var<'env, 'lookup, T, impl Fn(&'static str, T) -> Result<T>>

Appends a check that runs only after all preceding checks succeed.

Source

pub(super) fn alias(self, alias: &'static str) -> Self

Source

pub(super) fn or_load_from_file(self, alias: &'static str) -> Self

Source

pub(super) fn exclusive_file(self, alias: &'static str) -> Self

Loads the file only when no direct source is configured.

Reading a direct source together with this file source returns an anyhow::Error without reading the file or disclosing the direct value.

Source

pub(super) fn required(self) -> Result<T>

Returns the parsed and checked value of the first present key.

§Errors

Returns anyhow::Error when every key is absent or parsing or a check fails.

Source

pub(super) fn default(self, default: T) -> Result<T>

Uses the typed default only when every key is absent.

§Errors

Returns anyhow::Error when parsing or a check fails, including checks of the default value.

Source

pub(super) fn optional(self) -> Result<Option<T>>

Returns None only when every key is absent.

§Errors

Returns anyhow::Error when parsing or a check of a present value fails.

Source

fn load(&self) -> Result<Option<EnvValue>>

Source

fn parse(&self, value: EnvValue) -> Result<T>

Auto Trait Implementations§

§

impl<'env, 'lookup, T, C> Freeze for Var<'env, 'lookup, T, C>
where C: Freeze,

§

impl<'env, 'lookup, T, C = fn(&'static str, T) -> Result<T, Error>> !RefUnwindSafe for Var<'env, 'lookup, T, C>

§

impl<'env, 'lookup, T, C = fn(&'static str, T) -> Result<T, Error>> !Send for Var<'env, 'lookup, T, C>

§

impl<'env, 'lookup, T, C = fn(&'static str, T) -> Result<T, Error>> !Sync for Var<'env, 'lookup, T, C>

§

impl<'env, 'lookup, T, C> Unpin for Var<'env, 'lookup, T, C>
where C: Unpin,

§

impl<'env, 'lookup, T, C> UnsafeUnpin for Var<'env, 'lookup, T, C>
where C: UnsafeUnpin,

§

impl<'env, 'lookup, T, C = fn(&'static str, T) -> Result<T, Error>> !UnwindSafe for Var<'env, 'lookup, T, C>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: 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, 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,