docx-rs/docx-core/src/documents/bookmark_id.rs

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
}