#![doc = include_str!("../README.md")]
mod future;
use crate::future::Future;
pub use crate::future::{Getter, Setter};
use std::sync::{atomic::AtomicBool, Arc};
pub fn new<T>() -> (Setter<T>, Getter<T>) {
let future = Arc::new(Future::new());
let cancelled = Arc::new(AtomicBool::default());
let setter = Setter::new(future.clone(), cancelled.clone());
let getter = Getter::new(future, cancelled);
(setter, getter)
}