Skip to main content

ntex_http/
lib.rs

1//! Http protocol support.
2#![deny(clippy::pedantic)]
3#![allow(
4    clippy::missing_fields_in_debug,
5    clippy::missing_errors_doc,
6    clippy::must_use_candidate,
7    clippy::needless_pass_by_value
8)]
9
10pub mod body;
11pub mod error;
12pub mod header;
13mod map;
14mod serde;
15mod value;
16
17pub use self::error::Error;
18pub use self::map::HeaderMap;
19pub use self::value::HeaderValue;
20
21#[doc(hidden)]
22pub use self::map::Value;
23
24// re-exports
25pub use http::header::HeaderName;
26pub use http::uri::{self, Uri};
27pub use http::{Method, StatusCode, Version};
28
29/// Convert `http::HeaderMap` to a `HeaderMap`
30impl From<http::HeaderMap> for HeaderMap {
31    fn from(map: http::HeaderMap) -> HeaderMap {
32        let mut new_map = HeaderMap::with_capacity(map.capacity());
33        for (h, v) in &map {
34            new_map.append(h.clone(), HeaderValue::from(v));
35        }
36        new_map
37    }
38}
39
40#[doc(hidden)]
41pub mod compat {
42    pub use http::header::InvalidHeaderName;
43    pub use http::header::InvalidHeaderValue;
44    pub use http::method::InvalidMethod;
45    pub use http::status::InvalidStatusCode;
46    pub use http::uri::InvalidUri;
47}