pub mod config;
pub mod error;
pub mod format;
pub mod interface;
pub mod loader;
pub mod merger;
pub mod types;
mod impl_;
#[cfg(feature = "validation")]
pub mod validator;
#[cfg(feature = "interpolation")]
pub mod interpolation;
#[cfg(feature = "watch")]
pub mod watcher;
#[cfg(feature = "encryption")]
pub mod secret;
pub mod lifecycle;
#[cfg(feature = "audit")]
pub mod audit;
#[cfg(feature = "dynamic")]
pub mod dynamic;
#[cfg(feature = "migration")]
pub mod migration;
#[cfg(feature = "snapshot")]
pub mod snapshot;
#[cfg(feature = "modules")]
pub mod modules;
#[cfg(feature = "context-aware")]
pub mod context;
#[cfg(feature = "config-bus")]
pub mod bus;
#[cfg(feature = "cli")]
pub mod cli;
#[cfg(feature = "schema")]
pub mod schema;
#[cfg(feature = "security")]
pub mod security;
#[cfg(feature = "key")]
pub mod key;
#[cfg(feature = "remote")]
pub mod remote;
pub use lifecycle::Lifecycle;
#[cfg(feature = "snapshot")]
pub use config::SnapshotConfig;
pub use config::{
config, ConfigBuilder, ConfigLimits, DefaultSource, EnvSource, FileSource, MemorySource,
ReloadStrategy, Source, SourceChain, SourceChainBuilder, SourceKind,
};
pub use error::{
BuildResult, ConfersError, ConfersResult, ConfigConfigError, ConfigError, ConfigErrorCode,
ConfigResult, ErrorCode, InitResult, ParseLocation, SourceWarning,
};
pub use interface::{
ConfigConnector, ConfigProvider, ConfigProviderExt, ConfigReader, ConfigWriter, KeyProvider,
TypedConfigKey,
};
pub use types::{
AnnotatedValue, ConfigValue, KeyCachePolicy, NoOpMetrics, SourceId, SourceLocation,
ZeroizingBytes,
};
pub use loader::{
detect_format_from_content, detect_format_from_path, load_file, parse_content, Format,
LoaderConfig,
};
pub use confers_macros::Config;
pub use confers_macros::ConfigClap;
pub use confers_macros::ConfigMigration;
pub use confers_macros::ConfigModules;
pub use confers_macros::ConfigSchema;
#[cfg(feature = "validation")]
pub use validator::{Validate, ValidationResult, ValidationRule};
#[cfg(feature = "interpolation")]
pub use interpolation::{
interpolate, interpolate_tracked, InterpolationConfig, InterpolationContext,
InterpolationResult, InterpolationWarning,
};
#[cfg(feature = "watch")]
pub use watcher::{
AdaptiveDebouncer, FsWatcher, MultiFsWatcher, WatcherConfig, WatcherConfigBuilder, WatcherGuard,
};
#[cfg(feature = "progressive-reload")]
pub use watcher::{
HealthStatus, ProgressiveReloader, ProgressiveReloaderBuilder, ReloadHealthCheck, ReloadOutcome,
};
#[cfg(feature = "encryption")]
pub use secret::{
crypto::CryptoError, derive_field_key, SecretBytes, SecretString, XChaCha20Crypto,
};
#[cfg(feature = "audit")]
pub use audit::{
AuditConfig, AuditConfigBuilder, AuditEvent, AuditLevel, AuditWriter, AuditWriterBuilder,
};
#[cfg(feature = "dynamic")]
pub use dynamic::{CallbackGuard, DynamicField, DynamicFieldBuilder};
#[cfg(feature = "migration")]
pub use migration::{MigrationFn, MigrationOnReload, MigrationRegistry, Versioned};
#[cfg(feature = "snapshot")]
pub use snapshot::{SnapshotFormat, SnapshotInfo, SnapshotManager};
#[cfg(feature = "modules")]
pub use modules::{ModuleConfig, ModuleRegistry};
#[cfg(feature = "context-aware")]
pub use context::{
ContextAwareField, ContextAwareFieldBuilder, ContextRule, ContextValue, EvaluationContext,
};
#[cfg(feature = "config-bus")]
pub use bus::{BusBuilder, BusEventLimiter, ConfigBus, ConfigChangeEvent, InMemoryBus};
#[cfg(feature = "remote")]
pub use remote::{HttpPolledSource, HttpPolledSourceBuilder, PolledSource};
pub fn new_in_memory() -> impl ConfigConnector {
impl_::memory::InMemoryConfig::new()
}
pub mod prelude {
pub use crate::config::{config, ConfigBuilder, ConfigLimits};
pub use crate::error::{
BuildResult, ConfersError, ConfigConfigError, ConfigError, ConfigResult, ErrorCode,
};
pub use crate::interface::{
ConfigConnector, ConfigProvider, ConfigProviderExt, ConfigReader, ConfigWriter,
TypedConfigKey,
};
pub use crate::lifecycle::Lifecycle;
pub use crate::loader::{Format, LoaderConfig};
pub use crate::types::{AnnotatedValue, ConfigValue};
pub use crate::Config;
#[cfg(feature = "validation")]
pub use crate::validator::Validate;
#[cfg(feature = "interpolation")]
pub use crate::interpolation::{interpolate, InterpolationConfig};
#[cfg(feature = "dynamic")]
pub use crate::dynamic::{CallbackGuard, DynamicField, DynamicFieldBuilder};
}