muda/src/util.rs
2022-12-08 20:50:24 +02:00

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)
}
}