use ::id_effect::{Effect, caps, effect, provide, run_with};
use id_effect_logger::{EffectLogger, EffectLoggerError, EffectLoggerLive};
fn main() {
tracing_subscriber::fmt()
.with_env_filter(tracing_subscriber::EnvFilter::new("info"))
.init();
let prog: Effect<(), EffectLoggerError, caps!(EffectLogger)> = effect!(|r| {
let logger = *~EffectLogger;
~logger.info::<caps!(EffectLogger)>("resolved EffectLogger via Env + EffectLoggerLive");
~logger.warn::<caps!(EffectLogger)>("warn from the same extracted logger");
});
run_with([provide!(EffectLoggerLive)], prog)
.expect("EffectLoggerError is never produced by tracing");
}