use crate::err::Error;
use async_trait::async_trait;
use clap::{ArgMatches, Command as ClapCommand};
#[async_trait]
pub trait Command {
fn usage<'a>() -> ClapCommand<'a>;
async fn handler(m: &ArgMatches) -> Result<(), Error>;
}
mod data;
mod edit;
mod exec;
mod list;
mod pick;
mod stat;
mod test;
pub use data::DataCommand;
pub use edit::EditCommand;
pub use exec::ExecCommand;
pub use list::ListCommand;
pub use pick::PickCommand;
pub use stat::StatCommand;
pub use test::TestCommand;
pub use edit::{CODE_END, CODE_START};