hypershell_reqwest_components/providers/
convert.rs

1use 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}