pub struct ConfigTreeOptions { /* private fields */ }Expand description
Options for loading a recursive config tree.
Use this type when the default traversal behavior is not enough, for example when sibling includes should be visited in reverse declaration order.
Implementations§
Source§impl ConfigTreeOptions
Builder-style configuration for include tree traversal.
impl ConfigTreeOptions
Builder-style configuration for include tree traversal.
Sourcepub fn include_order(self, include_order: IncludeOrder) -> Self
pub fn include_order(self, include_order: IncludeOrder) -> Self
Sets the sibling include traversal order.
§Arguments
include_order: Order used when visiting sibling include paths.
§Returns
Returns the updated options value.
§Examples
use rust_config_tree::{ConfigTreeOptions, IncludeOrder};
let options = ConfigTreeOptions::default().include_order(IncludeOrder::Reverse);Sourcepub fn load<T, E, F>(
&self,
root_path: impl AsRef<Path>,
load: F,
) -> Result<ConfigTree<T>>
pub fn load<T, E, F>( &self, root_path: impl AsRef<Path>, load: F, ) -> Result<ConfigTree<T>>
Loads a config tree from root_path with a custom source loader.
The loader returns both the source value and the include paths declared by that source. Relative include paths are resolved from the source path.
§Type Parameters
T: Loaded value type stored for each config source.E: Error type returned byload.F: Source loader callback type.
§Arguments
root_path: Root config path to load first.load: Callback that receives each normalized absolute source path and returns the source value with its declared include paths.
§Returns
Returns a ConfigTree containing loaded nodes in traversal order.
§Examples
use std::{io, path::{Path, PathBuf}};
use rust_config_tree::{ConfigSource, ConfigTreeOptions};
let tree = ConfigTreeOptions::default().load(
"root.yaml",
|path: &Path| -> io::Result<ConfigSource<&'static str>> {
if path.ends_with("root.yaml") {
Ok(ConfigSource::new("root", vec![PathBuf::from("child.yaml")]))
} else {
Ok(ConfigSource::new("child", Vec::new()))
}
},
)?;
assert_eq!(tree.into_values(), vec!["root", "child"]);Trait Implementations§
Source§impl Clone for ConfigTreeOptions
impl Clone for ConfigTreeOptions
Source§fn clone(&self) -> ConfigTreeOptions
fn clone(&self) -> ConfigTreeOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConfigTreeOptions
impl Debug for ConfigTreeOptions
Source§impl Default for ConfigTreeOptions
impl Default for ConfigTreeOptions
Source§fn default() -> ConfigTreeOptions
fn default() -> ConfigTreeOptions
Source§impl PartialEq for ConfigTreeOptions
impl PartialEq for ConfigTreeOptions
impl Copy for ConfigTreeOptions
impl Eq for ConfigTreeOptions
impl StructuralPartialEq for ConfigTreeOptions
Auto Trait Implementations§
impl Freeze for ConfigTreeOptions
impl RefUnwindSafe for ConfigTreeOptions
impl Send for ConfigTreeOptions
impl Sync for ConfigTreeOptions
impl Unpin for ConfigTreeOptions
impl UnsafeUnpin for ConfigTreeOptions
impl UnwindSafe for ConfigTreeOptions
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);