mod add; mod cmd; mod edit; mod import; mod init; mod query; mod remove; mod clear; mod list; use anyhow::Result; pub use crate::cmd::cmd::*; pub trait Run { fn run(&self) -> Result<()>; } impl Run for Cmd { fn run(&self) -> Result<()> { match self { Cmd::Add(cmd) => cmd.run(), Cmd::Edit(cmd) => cmd.run(), Cmd::Import(cmd) => cmd.run(), Cmd::Init(cmd) => cmd.run(), Cmd::Query(cmd) => cmd.run(), Cmd::Remove(cmd) => cmd.run(), Cmd::List(cmd) => cmd.run(), Cmd::Clear(cmd) => cmd.run(), } } }