#![cfg_attr(coverage_nightly, feature(coverage_attribute))]
#![doc = include_str!("../README.md")]
pub mod memory;
pub mod protocol;
pub mod transport;
pub use darkbio_cobs as cobs;
pub use darkbio_crypto as crypto;
pub use darkbio_trust as trust;
pub use prost;
use std::fmt;
use std::sync::atomic::{AtomicU64, Ordering};
#[derive(Clone, Copy, Debug, Default)]
pub(crate) struct LogId(u64);
impl From<u64> for LogId {
fn from(id: u64) -> Self {
Self(id)
}
}
impl fmt::Display for LogId {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
self.0.fmt(f)
}
}
static SESSIONS: AtomicU64 = AtomicU64::new(0);
pub(crate) fn next_log_id() -> LogId {
LogId(SESSIONS.fetch_add(1, Ordering::Relaxed) + 1)
}
#[cfg(test)]
#[cfg_attr(coverage_nightly, coverage(off))]
mod testing;