dora-cli 0.5.0-rc0

`dora` goal is to be a low latency, composable, and distributed data flow.
use crate::command::{
    Executable,
    topic::{echo::Echo, hz::Hz, info::Info, list::List},
};

mod echo;
mod hz;
mod info;
mod list;
mod selector;

/// Manage and inspect dataflow topics.
#[derive(Debug, clap::Subcommand)]
pub enum Topic {
    List(List),
    Echo(Echo),
    Hz(Hz),
    Info(Info),
}

impl Executable for Topic {
    async fn execute(self) -> eyre::Result<()> {
        match self {
            Topic::List(cmd) => cmd.execute().await,
            Topic::Echo(cmd) => cmd.execute().await,
            Topic::Hz(cmd) => cmd.execute().await,
            Topic::Info(cmd) => cmd.execute().await,
        }
    }
}