cfgmatic-source 5.0.1

Configuration sources (file, env, memory) for cfgmatic framework
Documentation
//! Infrastructure layer - source implementations.
//!
//! This layer contains implementations of the [`crate::domain::Source`] trait:
//!
//! - [`FileSource`] - Load configuration from files (feature: `file`)
//! - [`EnvSource`] - Load configuration from environment variables (feature: `env`)
//! - [`MemorySource`] - In-memory source for testing
//! - [`CompositeSource`] - Combine multiple sources
//!
//! # Architecture
//!
//! ```mermaid
//! graph TB
//!     subgraph "Infrastructure Layer"
//!         FS[FileSource]
//!         ES[EnvSource]
//!         MS[MemorySource]
//!         CS[CompositeSource]
//!     end
//!
//!     subgraph "Domain Layer"
//!         S[Source Trait]
//!         F[Format]
//!         E[Error]
//!     end
//!
//!     S --> FS
//!     S --> ES
//!     S --> MS
//!     S --> CS
//!     F --> FS
//! ```

#[cfg(feature = "file")]
mod file_source;

#[cfg(feature = "env")]
mod env_source;

mod composite_source;
mod memory_source;

#[cfg(feature = "file")]
pub use file_source::{FileSource, FileSourceBuilder};

#[cfg(feature = "env")]
pub use env_source::{EnvConfig, EnvSource, EnvSourceBuilder};

pub use composite_source::{CompositeSource, CompositeSourceBuilder, SourcePriority};
pub use memory_source::{MemorySource, MemorySourceBuilder};