| Crates.io | http-serde |
| lib.rs | http-serde |
| version | 2.1.1 |
| created_at | 2020-02-09 16:35:46.166444+00 |
| updated_at | 2024-05-27 23:29:18.070009+00 |
| description | Serde support for the http crate. (De)serialize HeaderMap, Uri, Method, StatusCode |
| homepage | https://lib.rs/crates/http-serde |
| repository | https://gitlab.com/kornelski/http-serde |
| max_upload_size | |
| id | 206750 |
| size | 32,141 |
Adds ability to serialize and deserialize types from the HTTP crate.
If you want to serialize Request or Response, use into_parts() and serialize their parts, and then rebuild them using their Builder.
You must annotate fields with #[serde(with = "http_serde::<appropriate method>")].
# use http::{*, uri::*};
#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
#[serde(with = "http_serde::method")]
method: Method,
#[serde(with = "http_serde::status_code")]
status: StatusCode,
#[serde(with = "http_serde::uri")]
uri: Uri,
#[serde(with = "http_serde::header_map")]
headers: HeaderMap,
#[serde(with = "http_serde::authority")]
authority: Authority,
}
There's also support for the types wrapped in an Option. To use it, change the with attribute prefix from http_serde:: to http_serde::option::.
# use http::{*, uri::*};
#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
#[serde(with = "http_serde::option::header_map")]
// ^^^^^^
optional_headers: Option<HeaderMap>,
}