Trait ArgParser

Source
pub trait ArgParser<App, Args, Tag>
where App: HasErrorType,
{ type Parsed: Async; // Required method fn parse_arg( app: &App, args: &Args, tag: PhantomData<Tag>, ) -> Result<Self::Parsed, App::Error>; }

Required Associated Types§

Required Methods§

Source

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

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>,

Source§

type Parsed = <Delegate as ArgParser<App, Args, Tag>>::Parsed

Source§

impl<App, Args, Tag, Field> ArgParser<App, Args, Tag> for GetField
where App: HasErrorType, Args: HasField<Tag, Field = Field>, Field: Async + Clone,

Source§

type Parsed = Field

Source§

impl<App, Args, Tag, Parsed> ArgParser<App, Args, Tag> for ParseFromOptionalString<Parsed>
where App: CanRaiseError<Parsed::Err>, Args: HasField<Tag, Field = Option<String>>, Parsed: Async + FromStr,

Source§

type Parsed = Option<Parsed>

Source§

impl<App, Args, Tag, Parsed> ArgParser<App, Args, Tag> for ParseFromString<Parsed>
where App: CanRaiseError<Parsed::Err>, Args: HasField<Tag, Field = String>, Parsed: Async + FromStr,

Source§

type Parsed = Parsed

Source§

impl<App, Args, TagA, TagB, Field> ArgParser<App, Args, TagA> for GetFieldWithTag<TagB>
where App: HasErrorType, Args: HasField<TagB, Field = Field>, Field: Async + Clone, TagB: Async,

Source§

type Parsed = Field

Source§

impl<Component, App, Args, Tag> ArgParser<App, Args, Tag> for Component
where App: HasErrorType, Component: DelegateComponent<ArgParserComponent>, Component::Delegate: ArgParser<App, Args, Tag>,

Source§

type Parsed = <<Component as DelegateComponent<ArgParserComponent>>::Delegate as ArgParser<App, Args, Tag>>::Parsed