hermes_cli_components/impls/commands/
delegate.rs1use 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}