2021-06-18 11:27:19 -05:00
|
|
|
use std::convert::TryFrom;
|
|
|
|
use std::io::Write;
|
|
|
|
|
|
|
|
use clap::ArgMatches;
|
|
|
|
|
2021-06-21 17:38:51 -05:00
|
|
|
use crate::error;
|
|
|
|
use crate::database::Database;
|
|
|
|
use crate::config::Config;
|
2021-06-18 11:27:19 -05:00
|
|
|
|
|
|
|
pub mod r#in;
|
|
|
|
pub mod display;
|
|
|
|
|
|
|
|
pub trait Command<'a> {
|
|
|
|
type Args: TryFrom<&'a ArgMatches<'a>>;
|
|
|
|
|
2021-06-21 17:38:51 -05:00
|
|
|
fn handle<D: Database, W: Write>(args: Self::Args, db: &mut D, out: &mut W, config: &Config) -> error::Result<()>;
|
2021-06-18 11:27:19 -05:00
|
|
|
}
|