mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2026-04-25 13:40:43 +02:00
17 lines
364 B
Rust
17 lines
364 B
Rust
use std::sync::{Arc, atomic::AtomicBool};
|
|
use crate::Usually;
|
|
|
|
#[derive(Clone)] pub struct Exit(Arc<AtomicBool>);
|
|
|
|
impl Exit {
|
|
pub fn run <T> (run: impl Fn(Self)->Usually<T>) -> Usually<T> {
|
|
run(Self(Arc::new(AtomicBool::new(false))))
|
|
}
|
|
}
|
|
|
|
impl AsRef<Arc<AtomicBool>> for Exit {
|
|
fn as_ref (&self) -> &Arc<AtomicBool> {
|
|
&self.0
|
|
}
|
|
}
|
|
|