use std::convert::TryFrom; use std::io::Write; use clap::ArgMatches; use crate::error::Result; use crate::database::Database; use crate::config::Config; pub mod r#in; pub mod display; pub mod today; pub mod yesterday; pub mod sheet; pub mod week; pub mod month; pub trait Command<'a> { type Args: TryFrom<&'a ArgMatches<'a>>; fn handle(args: Self::Args, db: &mut D, out: &mut O, err: &mut E, config: &Config) -> Result<()>; }