himalaya 1.0.0-beta

CLI to manage emails
use anyhow::{Context, Result};

use crate::printer::WriteColor;

pub trait Print {
    fn print(&self, writer: &mut dyn WriteColor) -> Result<()>;
}

impl Print for &str {
    fn print(&self, writer: &mut dyn WriteColor) -> Result<()> {
        writeln!(writer, "{}", self).context("cannot write string to writer")?;
        Ok(writer.reset()?)
    }
}

impl Print for String {
    fn print(&self, writer: &mut dyn WriteColor) -> Result<()> {
        self.as_str().print(writer)?;
        Ok(writer.reset()?)
    }
}