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,
impl<'a, OffsetBuilder, PathFn> OffsetSource<'a, OffsetBuilder, PathFn>where
OffsetBuilder: ConfigurationBuilder,
Sourcepub fn new<TargetBuilder>(
inner_source: impl Source<OffsetBuilder> + 'a,
path: PathFn,
) -> Selfwhere
TargetBuilder: ConfigurationBuilder,
PathFn: for<'b> Fn(&'b mut TargetBuilder) -> &'b mut OffsetBuilder,
pub fn new<TargetBuilder>(
inner_source: impl Source<OffsetBuilder> + 'a,
path: PathFn,
) -> Selfwhere
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>
impl<OffsetBuilder, PathFn> Debug for OffsetSource<'_, OffsetBuilder, PathFn>
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,
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,
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> 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
Mutably borrows from an owned value. Read more