pidcat 0.2.1

An adb logcat wrapper and filters
Documentation
use crate::filter::Filter;
use crate::log::{Level, Log};
use async_trait::async_trait;

pub(crate) struct LevelFilter {
    level: Level,
}

impl LevelFilter {
    #[allow(dead_code)]
    pub(crate) fn new(level: Level) -> Self {
        Self { level }
    }
}

#[async_trait]
impl Filter for LevelFilter {
    async fn filter(&self, log: &Log) -> bool {
        use std::str::FromStr;

        if let Ok(level) = Level::from_str(&log.level) {
            if level >= self.level {
                return false;
            }
        }
        true
    }
}