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}