hypershell_reqwest_components/
presets.rs1#[cgp::re_export_imports]
2mod preset {
3 use cgp::core::component::UseDelegate;
4 use cgp::extra::handler::{HandlerComponent, PipeHandlers};
5 use cgp::prelude::{cgp_preset, *};
6 use hypershell_components::components::{
7 HttpMethodTypeProviderComponent, MethodArgExtractorComponent, StringArgExtractorComponent,
8 UrlTypeProviderComponent,
9 };
10 use hypershell_components::dsl::{
11 GetMethod, Header, PostMethod, SimpleHttpRequest, StreamingHttpRequest, UrlEncodeArg,
12 WithHeaders,
13 };
14 use hypershell_tokio_components::presets::ToTokioAsyncReadHandlers;
15 use hypershell_tokio_components::providers::WrapFuturesAsyncRead;
16 use reqwest::{Method, Url};
17
18 use crate::components::RequestBuilderUpdaterComponent;
19 use crate::dsl::CoreHttpRequest;
20 use crate::providers::{
21 ExtractReqwestMethod, HandleCoreHttpRequest, HandleSimpleHttpRequest,
22 HandleStreamingHttpRequest, StreamToBody, UpdateRequestHeader, UpdateRequestHeaders,
23 UrlEncodeStringArg,
24 };
25
26 cgp_preset! {
27 HypershellReqwestPreset {
28 HandlerComponent:
29 ReqwestHandlerPreset::Provider,
30 HttpMethodTypeProviderComponent:
31 UseType<Method>,
32 UrlTypeProviderComponent:
33 UseType<Url>,
34 StringArgExtractorComponent:
35 ReqwestStringArgExtractorPreset::Provider,
36 MethodArgExtractorComponent:
37 MethodArgExtractorPreset::Provider,
38 RequestBuilderUpdaterComponent:
39 RequestBuilderUpdaterPreset::Provider,
40 }
41 }
42
43 cgp_preset! {
44 #[wrap_provider(UseDelegate)]
45 ReqwestHandlerPreset {
46 <Method, Url, Headers> SimpleHttpRequest<Method, Url, Headers>:
47 HandleSimpleHttpRequest,
48 <Method, Url, Headers> StreamingHttpRequest<Method, Url, Headers>:
49 PipeHandlers<Product![
50 ToTokioAsyncReadHandlers::Provider,
51 StreamToBody,
52 HandleStreamingHttpRequest,
53 WrapFuturesAsyncRead,
54 ]>,
55 <Method, Url, Headers> CoreHttpRequest<Method, Url, Headers>:
56 HandleCoreHttpRequest,
57 }
58 }
59
60 cgp_preset! {
61 #[wrap_provider(UseDelegate)]
62 MethodArgExtractorPreset {
63 [
64 GetMethod,
65 PostMethod,
66 ]:
67 ExtractReqwestMethod,
68 }
69 }
70
71 cgp_preset! {
72 #[wrap_provider(UseDelegate)]
73 ReqwestStringArgExtractorPreset {
74 <Arg> UrlEncodeArg<Arg>:
75 UrlEncodeStringArg,
76 }
77 }
78
79 cgp_preset! {
80 #[wrap_provider(UseDelegate)]
81 RequestBuilderUpdaterPreset {
82 <Args> WithHeaders<Args>:
83 UpdateRequestHeaders,
84 <Key, Value> Header<Key, Value>:
85 UpdateRequestHeader,
86 }
87 }
88}