hypershell_components/
presets.rs1#[cgp::re_export_imports]
2mod preset {
3 use cgp::core::component::UseDelegate;
4 use cgp::extra::handler::{HandlerComponent, Promote};
5 use cgp::prelude::*;
6
7 use crate::components::{StringArgExtractorComponent, UrlArgExtractorComponent};
8 use crate::dsl::{BytesToString, ConvertTo, FieldArg, JoinArgs, Pipe, StaticArg, Use};
9 use crate::providers::{
10 DecodeUtf8Bytes, ExtractFieldArg, ExtractStaticArg, ExtractStringUrlArg, HandleConvert,
11 HandlePipe, HandleUseProvider, JoinStringArgs,
12 };
13
14 cgp_preset! {
15 HypershellBasePreset {
16 HandlerComponent:
17 BaseHandlerPreset::Provider,
18 StringArgExtractorComponent:
19 BaseStringArgExtractorPreset::Provider,
20 UrlArgExtractorComponent:
21 UrlArgExtractorPreset::Provider,
22 }
23 }
24
25 cgp_preset! {
26 #[wrap_provider(UseDelegate)]
27 BaseStringArgExtractorPreset {
28 <Arg> StaticArg<Arg>:
29 ExtractStaticArg,
30 <Tag> FieldArg<Tag>:
31 ExtractFieldArg,
32 <Args> JoinArgs<Args>:
33 JoinStringArgs,
34 }
35 }
36
37 cgp_preset! {
38 #[wrap_provider(UseDelegate)]
39 UrlArgExtractorPreset {
40 [
41 <Arg> StaticArg<Arg>,
42 <Args> JoinArgs<Args>,
43 <Tag> FieldArg<Tag>,
44 ]: ExtractStringUrlArg,
45 }
46 }
47
48 cgp_preset! {
49 #[wrap_provider(UseDelegate)]
50 BaseHandlerPreset {
51 BytesToString:
52 DecodeUtf8Bytes,
53 <T> ConvertTo<T>:
54 Promote<HandleConvert>,
55 <Handlers> Pipe<Handlers>:
56 HandlePipe,
57 <Provider, Code> Use<Provider, Code>:
58 HandleUseProvider,
59 }
60 }
61}