Crate url_serde

Source
Expand description

This crate provides wrappers and convenience functions to make rust-url and Serde work hand in hand.

The supported types are:

  • url::Url

§How do I use a data type with a Url member with Serde?

Use the serde attributes deserialize_with and serialize_with.

#[derive(serde::Serialize, serde::Deserialize)]
struct MyStruct {
    #[serde(with = "url_serde")]
    url: Url,
}

§How do I encode a Url value with serde_json::to_string?

Use the Ser wrapper.

serde_json::to_string(&Ser::new(&url))

§How do I decode a Url value with serde_json::parse?

Use the De wrapper.

serde_json::from_str(r"http:://www.rust-lang.org").map(De::into_inner)

§How do I send Url values as part of an IPC channel?

Use the Serde wrapper. It implements Deref and DerefMut for convenience.

ipc::channel::<Serde<Url>>()

Structs§

  • A wrapper to deserialize rust-url types.
  • A wrapper to serialize rust-url types.
  • A convenience wrapper to be used as a type parameter, for example when a Vec<T> or an HashMap<K, V> need to be passed to serde.

Functions§

  • Deserialises a T value with a given deserializer.
  • Serialises value with a given serializer.

Type Aliases§

  • A convenience type alias for Serde.