hypershell_components/
presets.rs

1#[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};
9    use crate::providers::{
10        DecodeUtf8Bytes, ExtractFieldArg, ExtractMethodFieldArg, ExtractStaticArg,
11        ExtractStringUrlArg, HandleConvert, HandlePipe, 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            ]: ExtractStringUrlArg,
44            <Tag> FieldArg<Tag>:
45                ExtractMethodFieldArg,
46        }
47    }
48
49    cgp_preset! {
50        #[wrap_provider(UseDelegate)]
51        BaseHandlerPreset {
52            BytesToString:
53                DecodeUtf8Bytes,
54            <T> ConvertTo<T>:
55                Promote<HandleConvert>,
56            <Handlers> Pipe<Handlers>:
57                HandlePipe,
58        }
59    }
60}