Crate musli_json

Source
Expand description

github crates.io docs.rs

JSON support for Müsli suitable for network and usually browser communication.

JSON encoding is fully upgrade stable:

  • ✔ Can tolerate missing fields if they are annotated with #[musli(default)].
  • ✔ Can skip over unknown fields.
use musli::{Encode, Decode};

#[derive(Debug, PartialEq, Encode, Decode)]
struct Version1 {
    name: String,
}

#[derive(Debug, PartialEq, Encode, Decode)]
struct Version2 {
    name: String,
    #[musli(default)]
    age: Option<u32>,
}

let version2 = musli_json::to_vec(&Version2 {
    name: String::from("Aristotle"),
    age: Some(62),
})?;

let version1: Version1 = musli_json::from_slice(version2.as_slice())?;

assert_eq!(version1, Version1 {
    name: String::from("Aristotle"),
});

Modules§

encoding
Module that defines Encoding whith allows for customization of the encoding format, and the DEFAULT encoding configuration.

Structs§

Encoding
Setting up encoding with parameters.
Error
Error raised during json encoding.

Traits§

Parser
Trait governing how JSON is parsed depending on the kind of buffer provided.

Functions§

decode
Decode the given type T from the given Parser using the DEFAULT configuration.
encode
Encode the given value to the given Writer using the DEFAULT configuration.
from_slice
Decode the given type T from the given slice using the DEFAULT configuration.
from_str
Decode the given type T from the given string using the DEFAULT configuration.
to_fixed_bytes
Encode the given value to a fixed-size bytes using the DEFAULT configuration.
to_stringalloc
Encode the given value to a String using the DEFAULT configuration.
to_vecalloc
Encode the given value to a Vec using the DEFAULT configuration.
to_writerstd
Encode the given value to the given Write using the DEFAULT configuration.

Type Aliases§

Result
Convenient result alias for use with musli_json.