32 lines
639 B
Rust
32 lines
639 B
Rust
#[cfg(not(test))]
|
|
use std::sync::atomic::AtomicUsize;
|
|
#[cfg(not(test))]
|
|
static BOOKMARK_ID: AtomicUsize = AtomicUsize::new(1);
|
|
|
|
#[cfg(not(test))]
|
|
pub fn generate_bookmark_id() -> usize {
|
|
use std::sync::atomic::Ordering;
|
|
|
|
let id = BOOKMARK_ID.load(Ordering::Relaxed);
|
|
BOOKMARK_ID.store(id.wrapping_add(1), Ordering::Relaxed);
|
|
id
|
|
}
|
|
|
|
#[cfg(not(test))]
|
|
pub fn reset_bookmark_id() {
|
|
use std::sync::atomic::Ordering;
|
|
|
|
BOOKMARK_ID.load(Ordering::Relaxed);
|
|
BOOKMARK_ID.store(1, Ordering::Relaxed);
|
|
}
|
|
|
|
#[cfg(test)]
|
|
pub fn generate_bookmark_id() -> usize {
|
|
1
|
|
}
|
|
|
|
#[cfg(test)]
|
|
pub fn reset_bookmark_id() {
|
|
// NOP
|
|
}
|