mirror of
https://github.com/italicsjenga/muda.git
synced 2024-12-23 20:11:29 +11:00
30 lines
615 B
Rust
30 lines
615 B
Rust
// Copyright 2022-2022 Tauri Programme within The Commons Conservancy
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
use std::sync::atomic::{AtomicU32, Ordering};
|
|
|
|
#[derive(Clone, Copy, Debug)]
|
|
pub enum AddOp {
|
|
Append,
|
|
Insert(usize),
|
|
}
|
|
|
|
pub struct Counter(AtomicU32);
|
|
|
|
impl Counter {
|
|
#[allow(unused)]
|
|
pub const fn new() -> Self {
|
|
Self(AtomicU32::new(1))
|
|
}
|
|
|
|
#[allow(unused)]
|
|
pub const fn new_with_start(start: u32) -> Self {
|
|
Self(AtomicU32::new(start))
|
|
}
|
|
|
|
pub fn next(&self) -> u32 {
|
|
self.0.fetch_add(1, Ordering::Relaxed)
|
|
}
|
|
}
|