hermes_cli_components/impls/commands/queries/
client.rs1use crate::impls::commands::queries::client_state::QueryClientStateArgs;
2use crate::impls::commands::queries::client_status::QueryClientStatusArgs;
3use crate::impls::commands::queries::consensus_state::QueryConsensusStateArgs;
4use crate::traits::command::{CanRunCommand, CommandRunner};
5
6pub struct RunQueryClientSubCommand;
7
8#[derive(Debug, clap::Subcommand)]
9pub enum QueryClientSubCommand {
10 State(QueryClientStateArgs),
12
13 Status(QueryClientStatusArgs),
15
16 Consensus(QueryConsensusStateArgs),
18}
19
20impl<App> CommandRunner<App, QueryClientSubCommand> for RunQueryClientSubCommand
21where
22 App: CanRunCommand<QueryClientStateArgs>
23 + CanRunCommand<QueryClientStatusArgs>
24 + CanRunCommand<QueryConsensusStateArgs>,
25{
26 async fn run_command(
27 app: &App,
28 subcommand: &QueryClientSubCommand,
29 ) -> Result<App::Output, App::Error> {
30 match subcommand {
31 QueryClientSubCommand::State(args) => app.run_command(args).await,
32 QueryClientSubCommand::Status(args) => app.run_command(args).await,
33 QueryClientSubCommand::Consensus(args) => app.run_command(args).await,
34 }
35 }
36}