hypershell_components/providers/
method_arg.rs

1use core::marker::PhantomData;
2
3use cgp::prelude::*;
4
5use crate::components::{HasHttpMethodType, MethodArgExtractor, MethodArgExtractorComponent};
6use crate::dsl::FieldArg;
7
8#[cgp_new_provider]
9impl<Context, Tag> MethodArgExtractor<Context, FieldArg<Tag>> for ExtractMethodFieldArg
10where
11    Context: HasHttpMethodType + HasField<Tag, Value = Context::HttpMethod>,
12    Context::HttpMethod: Clone,
13{
14    fn extract_method_arg(
15        context: &Context,
16        _phantom: PhantomData<FieldArg<Tag>>,
17    ) -> Context::HttpMethod {
18        context.get_field(PhantomData).clone()
19    }
20}