use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc; #[derive(Default)] pub struct Canceller { /// A reference to the canceled value of a context. cancelled: Arc, } impl Canceller { // Create a new Canceller pub fn new(cancelled: Arc) -> Canceller { Canceller { cancelled, } } // Cancel the context. pub fn cancel(&self) { self.cancelled.store(true, Ordering::SeqCst); } }