hermes-cli-components 0.1.0

Implementation of an IBC Relayer in Rust, as a library
Documentation
use core::marker::PhantomData;

use cgp::core::component::DelegateComponent;
use cgp::core::error::HasErrorType;

use crate::traits::parse::ArgParser;

pub struct DelegateArgParsers<Components>(pub PhantomData<Components>);

impl<App, Args, Tag, Components, Delegate> ArgParser<App, Args, Tag>
    for DelegateArgParsers<Components>
where
    App: HasErrorType,
    Components: DelegateComponent<(Args, Tag), Delegate = Delegate>,
    Delegate: ArgParser<App, Args, Tag>,
{
    type Parsed = Delegate::Parsed;

    fn parse_arg(
        app: &App,
        args: &Args,
        tag: PhantomData<Tag>,
    ) -> Result<Self::Parsed, App::Error> {
        Delegate::parse_arg(app, args, tag)
    }
}