Skip to main content

docx_rs/documents/
bookmark_id.rs

1#[cfg(not(test))]
2use std::sync::atomic::AtomicUsize;
3#[cfg(not(test))]
4static BOOKMARK_ID: AtomicUsize = AtomicUsize::new(1);
5
6#[cfg(not(test))]
7pub fn generate_bookmark_id() -> usize {
8    use std::sync::atomic::Ordering;
9
10    let id = BOOKMARK_ID.load(Ordering::Relaxed);
11    BOOKMARK_ID.store(id.wrapping_add(1), Ordering::Relaxed);
12    id
13}
14
15#[cfg(not(test))]
16pub fn reset_bookmark_id() {
17    use std::sync::atomic::Ordering;
18
19    BOOKMARK_ID.load(Ordering::Relaxed);
20    BOOKMARK_ID.store(1, Ordering::Relaxed);
21}
22
23#[cfg(test)]
24pub fn generate_bookmark_id() -> usize {
25    1
26}
27
28#[cfg(test)]
29pub fn reset_bookmark_id() {
30    // NOP
31}