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