Skip to main content

OffsetSource

Struct OffsetSource 

Source
pub struct OffsetSource<'a, OffsetBuilder, PathFn> { /* private fields */ }
Expand description

A Source containing another source that can build the target at an offset determined by the provided path.

use confik::{helpers::BuilderOf, Configuration, OffsetSource, TomlSource};

#[derive(Debug, Configuration, PartialEq, Eq)]
struct Config {
    data: usize,
    leaf: LeafConfig,
}

#[derive(Debug, Configuration, PartialEq, Eq)]
struct LeafConfig {
    data: usize,
}

let root_toml = "data = 4";
let leaf_toml = "data = 5";

let root_source = TomlSource::new(root_toml);
let leaf_source = OffsetSource::new::<BuilderOf<Config>>(
    TomlSource::new(leaf_toml),
    |b| &mut b.leaf,
);

let config = Config::builder()
    .override_with(root_source)
    .override_with(leaf_source)
    .try_build()
    .expect("Valid source");

assert_eq!(
    config,
    Config {
        data: 4,
        leaf: LeafConfig { data: 5 }
    }
);

Implementations§

Source§

impl<'a, OffsetBuilder, PathFn> OffsetSource<'a, OffsetBuilder, PathFn>
where OffsetBuilder: ConfigurationBuilder,

Source

pub fn new<TargetBuilder>( inner_source: impl Source<OffsetBuilder> + 'a, path: PathFn, ) -> Self
where TargetBuilder: ConfigurationBuilder, PathFn: for<'b> Fn(&'b mut TargetBuilder) -> &'b mut OffsetBuilder,

Creates a Source containing raw JSON data.

Trait Implementations§

Source§

impl<OffsetBuilder, PathFn> Debug for OffsetSource<'_, OffsetBuilder, PathFn>

Source§

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

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

impl<'a, OffsetBuilder, PathFn, TargetBuilder> Source<TargetBuilder> for OffsetSource<'a, OffsetBuilder, PathFn>
where TargetBuilder: ConfigurationBuilder, OffsetBuilder: ConfigurationBuilder, PathFn: for<'b> Fn(&'b mut TargetBuilder) -> &'b mut OffsetBuilder,

Source§

fn allows_secrets(&self) -> bool

Whether this source is allowed to contain secret data. Read more
Source§

fn provide(&self) -> Result<TargetBuilder, Box<dyn Error + Sync + Send>>

Attempts to provide a partial configuration object from this source.

Auto Trait Implementations§

§

impl<'a, OffsetBuilder, PathFn> Freeze for OffsetSource<'a, OffsetBuilder, PathFn>
where PathFn: Freeze,

§

impl<'a, OffsetBuilder, PathFn> !RefUnwindSafe for OffsetSource<'a, OffsetBuilder, PathFn>

§

impl<'a, OffsetBuilder, PathFn> !Send for OffsetSource<'a, OffsetBuilder, PathFn>

§

impl<'a, OffsetBuilder, PathFn> !Sync for OffsetSource<'a, OffsetBuilder, PathFn>

§

impl<'a, OffsetBuilder, PathFn> Unpin for OffsetSource<'a, OffsetBuilder, PathFn>
where PathFn: Unpin,

§

impl<'a, OffsetBuilder, PathFn> UnsafeUnpin for OffsetSource<'a, OffsetBuilder, PathFn>
where PathFn: UnsafeUnpin,

§

impl<'a, OffsetBuilder, PathFn> !UnwindSafe for OffsetSource<'a, OffsetBuilder, PathFn>

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.

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, 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