Crate http_serde_ext

source ·
Expand description

serde extensions for the http crate types

Allows serializing and deserializing the following types from http:

Allows serializing and deserializing the above types wrapped in the following std container types:

Usage

This library is intended to be used with serde’s derive feature. Fields should use the appropriate #[serde(with = "...")] annotation for that type. Full examples are provided in each module section of these docs.

use std::collections::*;

use http::*;
use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct MyStruct {
   #[serde(with = "http_serde_ext::response")]
   base: Response<Vec<u8>>,

   #[serde(with = "http_serde_ext::request::option")]
   option: Option<Request<String>>,

   #[serde(with = "http_serde_ext::method::vec")]
   vec: Vec<Method>,

   #[serde(with = "http_serde_ext::uri::vec_deque")]
   vec_deque: VecDeque<Uri>,

   #[serde(with = "http_serde_ext::header_map::linked_list")]
   linked_list: LinkedList<HeaderMap>,

   #[serde(with = "http_serde_ext::header_map_generic::hash_map")]
   hash_map: HashMap<String, HeaderMap<String>>,

   #[serde(with = "http_serde_ext::status_code::btree_map")]
   btree_map: BTreeMap<i32, StatusCode>,
}

Modules