use tokio::time;
#[derive(Clone)]
struct Database;
#[tokio::main]
async fn main() {
let injector = async_injector::Injector::new();
let (mut database_stream, mut database) = injector.stream::<Database>().await;
tokio::spawn({
let injector = injector.clone();
async move {
time::sleep(time::Duration::from_secs(2)).await;
injector.update(Database).await;
}
});
assert!(database.is_none());
database = database_stream.recv().await;
assert!(database.is_some());
}