hypershell_components/components/url_arg.rs
1use core::marker::PhantomData;
2
3use cgp::core::component::UseDelegate;
4use cgp::prelude::*;
5
6#[cgp_type]
7pub trait HasUrlType {
8 type Url;
9}
10
11#[cgp_component {
12 provider: UrlArgExtractor,
13 derive_delegate: UseDelegate<Arg>,
14}]
15pub trait CanExtractUrlArg<Arg>: HasUrlType + HasErrorType {
16 fn extract_url_arg(&self, _phantom: PhantomData<Arg>) -> Result<Self::Url, Self::Error>;
17}