hypershell_reqwest_components/providers/
convert.rs1use core::marker::PhantomData;
2
3use cgp::extra::handler::{Handler, HandlerComponent};
4use cgp::prelude::*;
5use reqwest::Body;
6use tokio::io::AsyncRead;
7use tokio_util::io::ReaderStream;
8
9#[cgp_new_provider]
10impl<Context, Code, Input> Handler<Context, Code, Input> for StreamToBody
11where
12 Context: HasAsyncErrorType,
13 Input: Send + AsyncRead + 'static,
14 Code: Send,
15{
16 type Output = Body;
17
18 async fn handle(
19 _context: &Context,
20 _tag: PhantomData<Code>,
21 input: Input,
22 ) -> Result<Body, Context::Error> {
23 let stream = ReaderStream::new(input);
24 let body = Body::wrap_stream(stream);
25 Ok(body)
26 }
27}