flumedb 0.1.6

Append-only log format used by Secure Scuttlebutt
Documentation
pub use failure::Error;

pub struct StreamOpts {
    pub lt: String,
    pub gt: String,
    pub reverse: bool,
    pub live: bool,
    pub limit: usize,
}

#[derive(Debug, Fail)]
pub enum FlumeLogError {
    #[fail(display = "Unable to find sequence: {}", sequence)]
    SequenceNotFound { sequence: u64 },
}

pub type Sequence = u64;

pub trait FlumeLog {
    fn get(&self, seq: Sequence) -> Result<Vec<u8>, Error>;
    fn clear(&mut self, seq: Sequence);
    fn latest(&self) -> Option<Sequence>;
    fn append(&mut self, buff: &[u8]) -> Result<Sequence, Error>;
}