pollination 0.1.0

An experimental library exposing hybrid Raft and CRDT primitives.
Documentation
use serde::{Deserialize, Serialize};
use uuid::Uuid;

#[derive(Debug, Serialize, Deserialize, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Default)]
pub struct RealityToken(u128);

impl RealityToken {
    pub fn new(uuid: Uuid) -> Self {
        Self(uuid.as_u128())
    }

    pub fn zero() -> Self {
        Self(0)
    }

    pub fn push(&mut self, uuid: Uuid) {
        self.0 ^= uuid.as_u128()
    }

    pub fn get(&self) -> u128 {
        self.0
    }
}

impl std::fmt::Display for RealityToken {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
        write!(f, "{}", self.0)
    }
}