merde_json

Trait JsonSerialize

source
pub trait JsonSerialize {
    // Required method
    fn json_serialize(&self, s: &mut JsonSerializer);

    // Provided methods
    fn to_json_bytes(&self) -> Vec<u8>  { ... }
    fn to_json_string(&self) -> String { ... }
}
Expand description

Implemented by anything that can be serialized to JSON.

Default implementations are provided for primitive types, strings, arrays, HashMap, Option, and slices of tuples (for when you don’t need the “hash” part of the HashMap).

u64 and i64 numbers, even those bigger than 2**53, are written as numbers, not strings, which might trip up other JSON parsers. If that’s a concern, consider writing numbers as strings yourself, or sticking to u32.

Empty maps and vectors are written as {} and [], respectively, not omitted.

None Options are omitted, not written as null. There is no way to specify a struct field that serializes to null at the moment (a custom implementation could use Value::Null internally).

Required Methods§

source

fn json_serialize(&self, s: &mut JsonSerializer)

Write self to a JsonSerializer.

Provided Methods§

source

fn to_json_bytes(&self) -> Vec<u8>

Allocate a new Vec<u8> and serialize self to it.

source

fn to_json_string(&self) -> String

Serialize self to a String.

Implementations on Foreign Types§

source§

impl JsonSerialize for Value<'_>

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for bool

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for f32

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for f64

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for i8

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for i16

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for i32

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for i64

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for isize

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for u8

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for u16

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for u32

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for u64

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for usize

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for String

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for Array<'_>

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl JsonSerialize for Map<'_>

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<'s> JsonSerialize for &'s str

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<'s> JsonSerialize for Cow<'s, str>

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<'s> JsonSerialize for CowStr<'s>

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<K: AsRef<str>, V: JsonSerialize, S> JsonSerialize for HashMap<K, V, S>

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T1: JsonSerialize> JsonSerialize for (T1,)

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T1: JsonSerialize, T2: JsonSerialize> JsonSerialize for (T1, T2)

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T1: JsonSerialize, T2: JsonSerialize, T3: JsonSerialize> JsonSerialize for (T1, T2, T3)

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T1: JsonSerialize, T2: JsonSerialize, T3: JsonSerialize, T4: JsonSerialize> JsonSerialize for (T1, T2, T3, T4)

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T1: JsonSerialize, T2: JsonSerialize, T3: JsonSerialize, T4: JsonSerialize, T5: JsonSerialize> JsonSerialize for (T1, T2, T3, T4, T5)

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T1: JsonSerialize, T2: JsonSerialize, T3: JsonSerialize, T4: JsonSerialize, T5: JsonSerialize, T6: JsonSerialize> JsonSerialize for (T1, T2, T3, T4, T5, T6)

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T1: JsonSerialize, T2: JsonSerialize, T3: JsonSerialize, T4: JsonSerialize, T5: JsonSerialize, T6: JsonSerialize, T7: JsonSerialize> JsonSerialize for (T1, T2, T3, T4, T5, T6, T7)

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T1: JsonSerialize, T2: JsonSerialize, T3: JsonSerialize, T4: JsonSerialize, T5: JsonSerialize, T6: JsonSerialize, T7: JsonSerialize, T8: JsonSerialize> JsonSerialize for (T1, T2, T3, T4, T5, T6, T7, T8)

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T> JsonSerialize for &T
where T: ?Sized + JsonSerialize,

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T: JsonSerialize> JsonSerialize for &[T]

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T: JsonSerialize> JsonSerialize for Option<T>

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

source§

impl<T: JsonSerialize> JsonSerialize for Vec<T>

source§

fn json_serialize(&self, serializer: &mut JsonSerializer)

Implementors§