bfree 0.1.16

bfree - memory stats for humans
Documentation
use crate::core::memory_stats::MemoryStats;
use crate::render::Renderer;
use crate::render::views::{CompactView, ExtendedView, PrettyView};

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum HumanFormat {
    Compact,
    Extended,
    Pretty,
}

pub struct Presenter {
    format: HumanFormat,
}

impl Presenter {
    pub fn new(format: HumanFormat) -> Self {
        Self { format }
    }
}

impl Renderer for Presenter {
    fn render(&self, stats: &MemoryStats) -> String {
        match self.format {
            HumanFormat::Compact => CompactView.render(stats),
            HumanFormat::Extended => ExtendedView.render(stats),
            HumanFormat::Pretty => PrettyView.render(stats),
        }
    }
}