docx_reader/documents/toc_key.rs
1use std::sync::atomic::AtomicUsize;
2
3static TOC_KEY: AtomicUsize = AtomicUsize::new(0);
4
5pub trait TocKeyGenerator {
6 fn generate() -> String {
7 use std::sync::atomic::Ordering;
8
9 let id = TOC_KEY.load(Ordering::Relaxed);
10 TOC_KEY.store(id + 1, Ordering::Relaxed);
11 format!("_Toc{:08}", id)
12 }
13}
14
15pub struct TocKey {}
16
17impl TocKeyGenerator for TocKey {}