monoio_http/common/
mod.rs

1use bytes::Bytes;
2
3pub mod body;
4pub mod error;
5pub mod ext;
6pub mod request;
7pub mod response;
8
9#[cfg(feature = "parsed")]
10pub mod parsed;
11
12pub(crate) mod waker;
13
14pub trait FromParts<P, B = Bytes> {
15    fn from_parts(parts: P, body: B) -> Self;
16}
17
18pub trait IntoParts {
19    type Parts;
20    type Body;
21    fn into_parts(self) -> (Self::Parts, Self::Body);
22}
23
24pub trait BorrowHeaderMap {
25    fn header_map(&self) -> &http::HeaderMap;
26}
27
28impl<T: BorrowHeaderMap> BorrowHeaderMap for &T {
29    #[inline]
30    fn header_map(&self) -> &http::HeaderMap {
31        (**self).header_map()
32    }
33}
34
35impl BorrowHeaderMap for http::HeaderMap<http::HeaderValue> {
36    #[inline]
37    fn header_map(&self) -> &http::HeaderMap {
38        self
39    }
40}