hermes_cli_components/impls/commands/
delegate.rs

1use core::marker::PhantomData;
2
3use cgp::prelude::*;
4
5use crate::traits::command::CommandRunner;
6use crate::traits::output::HasOutputType;
7
8pub struct DelegateCommandRunner<Components>(pub PhantomData<Components>);
9
10impl<App, Args, Components, Delegate> CommandRunner<App, Args> for DelegateCommandRunner<Components>
11where
12    App: HasOutputType + HasErrorType,
13    Components: DelegateComponent<Args, Delegate = Delegate>,
14    Delegate: CommandRunner<App, Args>,
15    Args: Async,
16{
17    async fn run_command(app: &App, args: &Args) -> Result<App::Output, App::Error> {
18        Delegate::run_command(app, args).await
19    }
20}