manual-executor 0.1.0

Async executor with manual waking
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use core::sync::atomic::{AtomicUsize, Ordering};

static NEXT_KEY: AtomicUsize = AtomicUsize::new(1);

#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)]
#[repr(transparent)]
pub struct Key(usize);

#[allow(clippy::new_without_default)]
impl Key {
  pub(crate) fn new() -> Self {
    Self(NEXT_KEY.fetch_add(1, Ordering::Relaxed))
  }
}