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

27 lines
556 B
Rust

#[cfg(not(test))]
use std::sync::atomic::AtomicUsize;
#[cfg(not(test))]
static TOC_KEY: AtomicUsize = AtomicUsize::new(0);
#[cfg(not(test))]
pub trait TocKeyGenerator {
fn generate() -> String {
use std::sync::atomic::Ordering;
let id = TOC_KEY.load(Ordering::Relaxed);
TOC_KEY.store(id + 1, Ordering::Relaxed);
format!("_Toc{:08}", id)
}
}
pub struct TocKey {}
impl TocKeyGenerator for TocKey {}
#[cfg(test)]
pub trait TocKeyGenerator {
fn generate() -> String {
"_Toc00000000".to_string()
}
}