madruga 0.1.3

Retry resiliente com backoff.
Documentation
use anyhow::Result;
use black::BlackBox;

pub trait Log: Send + Sync {
    fn log_event(&self, event: &str) -> Result<()>;
    fn log_error(&self, error: &str) -> Result<()>;
}

pub struct Logger {
    inner: BlackBox,
}

impl Logger {
    pub fn new(filename: &str) -> Result<Self> {
        let inner = BlackBox::new(filename)?;
        Ok(Logger { inner })
    }
}

impl Log for Logger {
    fn log_event(&self, event: &str) -> Result<()> {
        self.inner.log_event(event)
    }
    fn log_error(&self, error: &str) -> Result<()> {
        self.inner.log_error(error)
    }
}