manual_executor/key.rs
1use core::sync::atomic::{AtomicUsize, Ordering};
2
3static NEXT_KEY: AtomicUsize = AtomicUsize::new(1);
4
5#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)]
6#[repr(transparent)]
7pub struct Key(usize);
8
9#[allow(clippy::new_without_default)]
10impl Key {
11 pub(crate) fn new() -> Self {
12 Self(NEXT_KEY.fetch_add(1, Ordering::Relaxed))
13 }
14}