samod_core/io/
io_task_id.rs

1use std::sync::atomic::AtomicUsize;
2
3static LAST_IO_TASK_ID: AtomicUsize = AtomicUsize::new(0);
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
6pub struct IoTaskId(usize);
7
8impl IoTaskId {
9    pub(crate) fn new() -> Self {
10        let id = LAST_IO_TASK_ID.fetch_add(1, std::sync::atomic::Ordering::SeqCst);
11        IoTaskId(id)
12    }
13}
14
15impl From<usize> for IoTaskId {
16    fn from(id: usize) -> Self {
17        IoTaskId(id)
18    }
19}