hyper_request_validator/
lib.rs1use hyper::{Body, Request};
4
5#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
7pub struct Bufferer;
8
9#[async_trait::async_trait]
10impl<Body> http_body_request_validator::Bufferer<Body> for Bufferer
11where
12 Body: http_body::Body + Send,
13 for<'a> Body: 'a,
14 <Body as http_body::Body>::Data: Send,
15{
16 type Data = bytes::Bytes;
17 type Error = <Body as http_body::Body>::Error;
18
19 async fn buffer(&self, body: Body) -> Result<Self::Data, Self::Error> {
20 hyper::body::to_bytes(body).await
21 }
22}
23
24pub type Error<V> = http_body_request_validator::Error<hyper::Error, V>;
26
27pub async fn validate<Validator>(
29 validator: Validator,
30 req: Request<Body>,
31) -> Result<Request<Body>, Error<Validator::Error>>
32where
33 Validator: http_request_validator::Validator<bytes::Bytes>,
34{
35 http_body_request_validator::validate(Bufferer, validator, req).await
36}