strev 0.6.0

Event-driven pub/sub messaging library with compile-time ack safety
Documentation
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Outcome {
    Acked(sealed::AckToken),
    Nacked(sealed::AckToken),
}

impl Outcome {
    pub(crate) fn acked() -> Self {
        Self::Acked(sealed::AckToken(()))
    }

    pub(crate) fn nacked() -> Self {
        Self::Nacked(sealed::AckToken(()))
    }

    pub fn is_acked(self) -> bool {
        matches!(self, Self::Acked(_))
    }

    pub fn is_nacked(self) -> bool {
        matches!(self, Self::Nacked(_))
    }
}

mod sealed {
    #[derive(Clone, Copy, Debug, PartialEq, Eq)]
    pub struct AckToken(pub(super) ());
}