2020-01-24 10:57:14 +02:00
|
|
|
#[cfg(not(test))]
|
|
|
|
use std::sync::atomic::AtomicUsize;
|
|
|
|
#[cfg(not(test))]
|
2019-11-15 11:15:43 +02:00
|
|
|
static HISTORY_ID: AtomicUsize = AtomicUsize::new(0);
|
|
|
|
|
|
|
|
#[cfg(not(test))]
|
|
|
|
pub trait HistoryId {
|
|
|
|
fn generate(&self) -> String {
|
2020-01-24 10:57:14 +02:00
|
|
|
use std::sync::atomic::Ordering;
|
|
|
|
|
2019-11-15 11:15:43 +02:00
|
|
|
let id = HISTORY_ID.load(Ordering::Relaxed);
|
|
|
|
HISTORY_ID.store(id + 1, Ordering::Relaxed);
|
|
|
|
format!("{}", id)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#[cfg(test)]
|
|
|
|
pub trait HistoryId {
|
|
|
|
fn generate(&self) -> &str {
|
|
|
|
"123"
|
|
|
|
}
|
|
|
|
}
|