Crates.io | http-serde |
lib.rs | http-serde |
version | 2.1.1 |
source | src |
created_at | 2020-02-09 16:35:46.166444 |
updated_at | 2024-05-27 23:29:18.070009 |
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>,
}