A crate for asynchronous centralized configuration management.
Usage
You can define 'ConfigGroupData' which defines set of grouped properties,
which should be updated at once. Only config_it decorated properties will be counted
as part of given group and will be managed.
ConfigGroupData must implement Clone and Default to be treated as valid config
group data.
You should create Storage to create config group instances(Group<T:ConfigGroupData>).
Storage is the primary actor for centralized configuration management. Config groups can
be instantiated based on storage instance.
Example usage
use ;
///
/// Define set of properties using derive macro
///
/// `Debug` implementation is optional.
///
// Second tuple parameter is 'actor', which asynchronously drives all multithreaded
// operations safely. If you utilize async executors, for example, `tokio`, then you can
// simply spawn the whole storage operations as light-weight async task.
let = new;
spawn; // tokio::task::spawn(async_worker)
// Since most of storage operations are run through actor, it is usually recommended to
// use config_it inside async context.
let job = async move ;
block_on;