hypershell_components/components/
command_arg.rs

1use core::marker::PhantomData;
2
3use cgp::core::component::UseDelegate;
4use cgp::prelude::*;
5
6#[cgp_type]
7pub trait HasCommandArgType {
8    type CommandArg;
9}
10
11#[cgp_component {
12    provider: CommandArgExtractor,
13    derive_delegate: UseDelegate<Arg>,
14}]
15pub trait CanExtractCommandArg<Arg>: HasCommandArgType {
16    fn extract_command_arg(&self, _phantom: PhantomData<Arg>) -> Self::CommandArg;
17}