//! Runtime-mutable, persisted, observable configuration for Rust.
//!
//! `attune` is the user-facing crate. It re-exports the core types and the
//! `Settings` derive macro, and (with the default `sqlite` feature) the SQLite
//! backend.

pub use attune_core::{
    ApplyResult, BackendError, ChangeEvent, ChangeSource, ConfigPathOptions, DeserializeFallback,
    ExternalApplier, FieldResolveOptions, NoopBackend, PersistResolveOptions, PersistedField,
    ReadOnlyField, SettingsError, SettingsHandle, StorageBackend, StoredValue,
    decode_persist_value, load_toml_file, resolve_config_file, resolve_persist_field,
    resolve_readonly_field,
};
pub use attune_derive::Settings;

#[cfg(feature = "sqlite")]
pub use attune_sqlite::{SqliteBackend, SqliteJournalMode, SqliteOptions, SqliteSynchronous};
