pub struct ConfigFileRule {
pub pattern: FilePattern,
pub tiers: TierSearchMode,
pub required: bool,
}Expand description
Rule for finding a single configuration file.
Defines how to search for a specific configuration file across different tiers (User, Local, System) and what to do when multiple instances are found.
§Example
use cfgmatic_paths::{ConfigFileRule, TierSearchMode};
let rule = ConfigFileRule::extensions("config", &["toml", "yaml"])
.tiers(TierSearchMode::All)
.required(true);Fields§
§pattern: FilePatternFile pattern to match.
tiers: TierSearchModeWhich tiers to search for this file.
required: boolWhether the file is required (error if not found).
Implementations§
Source§impl ConfigFileRule
impl ConfigFileRule
Sourcepub fn toml(base: impl Into<String>) -> ConfigFileRule
pub fn toml(base: impl Into<String>) -> ConfigFileRule
Create a new rule for a file with a single extension.
§Example
use cfgmatic_paths::ConfigFileRule;
let rule = ConfigFileRule::toml("config");Sourcepub fn extensions(
base: impl Into<String>,
extensions: &[&str],
) -> ConfigFileRule
pub fn extensions( base: impl Into<String>, extensions: &[&str], ) -> ConfigFileRule
Create a new rule for a file with multiple extensions.
§Example
use cfgmatic_paths::ConfigFileRule;
let rule = ConfigFileRule::extensions("config", &["toml", "yaml", "json"]);Sourcepub fn exact(name: impl Into<String>) -> ConfigFileRule
pub fn exact(name: impl Into<String>) -> ConfigFileRule
Create a new rule for an exact filename match.
§Example
use cfgmatic_paths::ConfigFileRule;
let rule = ConfigFileRule::exact("main.conf");Sourcepub fn glob(pattern: impl Into<String>) -> ConfigFileRule
pub fn glob(pattern: impl Into<String>) -> ConfigFileRule
Create a new rule for glob pattern matching.
§Example
use cfgmatic_paths::ConfigFileRule;
let rule = ConfigFileRule::glob("*.conf");Sourcepub const fn tiers(self, tiers: TierSearchMode) -> ConfigFileRule
pub const fn tiers(self, tiers: TierSearchMode) -> ConfigFileRule
Set which tiers to search.
§Example
use cfgmatic_paths::{ConfigFileRule, TierSearchMode, ConfigTier};
let rule = ConfigFileRule::toml("config")
.tiers(TierSearchMode::FromTier(ConfigTier::System));Sourcepub const fn required(self, required: bool) -> ConfigFileRule
pub const fn required(self, required: bool) -> ConfigFileRule
Mark the file as required.
§Example
use cfgmatic_paths::ConfigFileRule;
let rule = ConfigFileRule::toml("config")
.required(true);Trait Implementations§
Source§impl Clone for ConfigFileRule
impl Clone for ConfigFileRule
Source§fn clone(&self) -> ConfigFileRule
fn clone(&self) -> ConfigFileRule
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ConfigFileRule
impl Debug for ConfigFileRule
Source§impl PartialEq for ConfigFileRule
impl PartialEq for ConfigFileRule
impl Eq for ConfigFileRule
impl StructuralPartialEq for ConfigFileRule
Auto Trait Implementations§
impl Freeze for ConfigFileRule
impl RefUnwindSafe for ConfigFileRule
impl Send for ConfigFileRule
impl Sync for ConfigFileRule
impl Unpin for ConfigFileRule
impl UnsafeUnpin for ConfigFileRule
impl UnwindSafe for ConfigFileRule
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