ankurah-proto 0.9.2

Inter-node communication protocol for Ankurah
Documentation
use serde::{Deserialize, Serialize};
use ulid::Ulid;

#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
pub struct TransactionId(Ulid);

impl std::fmt::Display for TransactionId {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let id_str = self.0.to_string();
        write!(f, "T{}", &id_str[20..])
    }
}

impl Default for TransactionId {
    fn default() -> Self { Self::new() }
}

impl TransactionId {
    pub fn new() -> Self { Self(Ulid::new()) }
}