Skip to main content

Config

Struct Config 

Source
pub struct Config {
    pub version: String,
    pub profile: String,
    pub log_file_path: PathBuf,
    pub log_level: LogLevel,
    pub log_rotation: Option<LogRotation>,
    pub log_format: String,
    pub logging_destinations: Vec<LoggingDestination>,
    pub env_vars: HashMap<String, String>,
}
Expand description

Configuration structure for the logging system.

Fields§

§version: String

Version of the configuration.

§profile: String

Profile name for the configuration.

§log_file_path: PathBuf

Path to the log file.

§log_level: LogLevel

Log level for the system.

§log_rotation: Option<LogRotation>

Log rotation settings.

§log_format: String

Log format string.

§logging_destinations: Vec<LoggingDestination>

Logging destinations for the system.

§env_vars: HashMap<String, String>

Environment variables for the system.

Implementations§

Source§

impl Config

Source

pub fn hot_reload_async( config_path: &str, config: &Arc<RwLock<Self>>, ) -> Result<Sender<()>, ConfigError>

Available on crate feature tokio only.

Hot-reloads configuration on file change.

Polls the file every HOT_RELOAD_POLL_INTERVAL and reloads it when its modification time or size changes, including when an editor replaces it by renaming a new file over it. A file that fails to load leaves the current configuration in place. Send () on the returned channel, or drop it, to stop.

Requires the tokio feature and a running Tokio runtime.

§Errors

Returns ConfigError::WatcherError if the file cannot be read when watching starts.

Source§

impl Config

Source

pub fn load<P: AsRef<Path>>( config_path: Option<P>, ) -> Result<Arc<RwLock<Self>>, ConfigError>

Loads configuration from a file or falls back to defaults.

This is the synchronous variant. See Config::load_async for the async equivalent (requires the tokio feature).

§Errors

Returns an error if the configuration file cannot be read, parsed, or if the version is unsupported.

Source

pub async fn load_async<P: AsRef<Path>>( config_path: Option<P>, ) -> Result<Arc<RwLock<Self>>, ConfigError>

Available on crate feature tokio only.

Loads configuration from a file or environment variables (async).

Requires the tokio feature.

§Errors

This function returns an error if the configuration file cannot be read, parsed, or if the version is unsupported.

Source

pub fn save_to_file<P: AsRef<Path>>(&self, path: P) -> Result<(), ConfigError>

Saves the current configuration to a file in TOML format.

This matches the TOML format expected by Config::load.

§Errors

This function returns an error if the file cannot be written or if serialization fails.

Source

pub fn set<T: Serialize>( &mut self, key: &str, value: T, ) -> Result<(), ConfigError>

Sets a value in the configuration based on the specified key.

§Errors

This function returns an error if the value cannot be serialized or if the key is unknown.

Source

pub fn validate(&self) -> Result<(), ConfigError>

Validates the configuration settings.

§Errors

This function returns an error if any configuration setting is invalid.

Source

pub fn ensure_paths(&self) -> Result<(), ConfigError>

Creates directories and log files required by the configuration.

§Errors

This function returns an error if the directories or files cannot be created.

Source

pub fn expand_env_vars(&self) -> Self

Expands environment variables in the configuration values.

Source

pub fn diff(config1: &Self, config2: &Self) -> HashMap<String, String>

Compares two configurations and returns the differences.

Source

pub fn override_with(&self, other: &Self) -> Self

Overrides the current configuration with values from another configuration.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

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

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

impl Default for Config

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Config

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Config

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl TryFrom<Vars> for Config

Source§

type Error = ConfigError

The type returned in the event of a conversion error.
Source§

fn try_from(vars: Vars) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.