use std::sync::{Arc, atomic::AtomicBool}; use crate::Usually; #[derive(Clone)] pub struct Exit(Arc); impl Exit { pub fn run (run: impl Fn(Self)->Usually) -> Usually { run(Self(Arc::new(AtomicBool::new(false)))) } } impl AsRef> for Exit { fn as_ref (&self) -> &Arc { &self.0 } }