cfgmatic 5.0.1

Facade crate for cfgmatic configuration management framework
Documentation
//! # cfgmatic - Configuration Management Framework for Rust
//!
//! **cfgmatic** is a facade crate that re-exports functionality from
//! specialized sub-crates.
//!
//! ## Crate Overview
//!
//! | Crate               | Purpose                            |
//! | ------------------- | ---------------------------------- |
//! | `cfgmatic-core`     | Core types and traits              |
//! | `cfgmatic-paths`    | Platform-specific path discovery   |
//! | `cfgmatic-merge`    | Configuration merging strategies   |
//! | `cfgmatic-schema`   | Schema and introspection           |
//! | `cfgmatic-source`   | Configuration sources (file, env)  |
//! | `cfgmatic-reactive` | Reactive configuration updates     |
//! | `cfgmatic-plan`     | Terraform-like plan/apply workflow |
//!
//! ## Feature Flags
//!
//! | Feature    | Description           | Default |
//! | ---------- | --------------------- | ------- |
//! | `source`   | Configuration sources | Yes     |
//! | `plan`     | Plan/Apply workflow   | Yes     |
//! | `reactive` | Config subscriptions  | No      |
//! | `schema`   | Schema/introspection  | No      |
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! // Path discovery
//! use cfgmatic::paths::PathsBuilder;
//! let finder = PathsBuilder::new("myapp").build();
//! let _ = finder;
//!
//! // Configuration sources (with "source" feature)
//! use cfgmatic::source::*;
//! let config: std::collections::BTreeMap<String, String> = load_from_file("config.toml")?;
//! # let _ = config;
//!
//! // Plan/Apply workflow (with "plan" feature)
//! use cfgmatic::plan::*;
//! # Ok::<(), Box<dyn std::error::Error>>(())
//! ```

// Core - always available
pub use cfgmatic_core as core;

// Paths - always available
pub use cfgmatic_paths as paths;

// Merge - always available
pub use cfgmatic_merge as merge;

// Schema - optional
#[cfg(feature = "schema")]
pub use cfgmatic_schema as schema;

// Source - optional
#[cfg(feature = "source")]
pub use cfgmatic_source as source;

// Plan - optional
#[cfg(feature = "plan")]
pub use cfgmatic_plan as plan;

// Reactive - optional
#[cfg(feature = "reactive")]
pub use cfgmatic_reactive as reactive;