Wado
<!-- Auto-generated by: wado doc -f markdown core:json_nsd --> <!-- Do not edit this file directly. -->

core:json_nsd

JSON NSD (Non-Self-Describing) serialization and deserialization.

Structs are encoded as positional arrays (field names omitted). Unit variants (enums) are encoded as integer discriminants. Payload variants are encoded as [disc, payload].

Synopsis

struct Point {
    x: i32,
    y: i32,
}
impl Serialize for Point;
impl Deserialize for Point;

assert to_string(&Point { x: 1, y: 2 }) matches { Ok(s) && s == "[1,2]" };
assert from_string::<Point>("[1,2]") matches { Ok(p) && p.x == 1 && p.y == 2 };

Functions

pub fn to_bytes<T: Serialize>(value: &T) -> Result<List<u8>, SerializeError>

Serializes a value to UTF-8 JSON NSD bytes — the primary entry point.

pub fn to_string<T: Serialize>(value: &T) -> Result<String, SerializeError>

Serializes a value to a JSON NSD string. Convenience over to_bytes for text contexts; serde I/O is bytes-primary.

pub fn from_string<T: Deserialize>(input: String) -> Result<T, DeserializeError>

Deserializes a value from a JSON NSD string.

pub fn from_bytes<T: Deserialize, S: AsByteSlice>(input: S) -> Result<T, DeserializeError>

Deserializes a value from UTF-8 JSON NSD bytes — the primary entry point. Accepts any byte source via AsByteSlice (including a String).

Structs

pub struct NsdSerializer

Fields are private.

impl Serializer for NsdSerializer

fn serialize_i32(&mut self, v: i32) -> Result<(), SerializeError>
fn serialize_i64(&mut self, v: i64) -> Result<(), SerializeError>
fn serialize_u32(&mut self, v: u32) -> Result<(), SerializeError>
fn serialize_u64(&mut self, v: u64) -> Result<(), SerializeError>
fn serialize_i128(&mut self, v: i128) -> Result<(), SerializeError>
fn serialize_u128(&mut self, v: u128) -> Result<(), SerializeError>
fn serialize_f32(&mut self, v: f32) -> Result<(), SerializeError>
fn serialize_f64(&mut self, v: f64) -> Result<(), SerializeError>
fn serialize_bool(&mut self, v: bool) -> Result<(), SerializeError>
fn serialize_char(&mut self, v: char) -> Result<(), SerializeError>
fn serialize_string(&mut self, v: &String) -> Result<(), SerializeError>
fn serialize_null(&mut self) -> Result<(), SerializeError>
fn begin_seq(&mut self, len: i32) -> Result<NsdSeqSerializer, SerializeError> with stores[self]
fn begin_map(&mut self, len: i32) -> Result<NsdMapSerializer, SerializeError> with stores[self]
fn begin_struct(&mut self, name: &String, fields: i32) -> Result<NsdStructSerializer, SerializeError> with stores[self]
fn serialize_unit_variant(&mut self, type_name: &String, variant_name: &String, disc: i32) -> Result<(), SerializeError>
fn begin_variant(&mut self, type_name: &String, variant_name: &String, disc: i32) -> Result<NsdVariantSerializer, SerializeError> with stores[self]

pub struct NsdDeserializer

Fields are private.

impl Deserializer for NsdDeserializer

fn deserialize_i32(&mut self) -> Result<i32, DeserializeError>
fn deserialize_i64(&mut self) -> Result<i64, DeserializeError>
fn deserialize_u32(&mut self) -> Result<u32, DeserializeError>
fn deserialize_u64(&mut self) -> Result<u64, DeserializeError>
fn deserialize_i128(&mut self) -> Result<i128, DeserializeError>
fn deserialize_u128(&mut self) -> Result<u128, DeserializeError>
fn deserialize_f32(&mut self) -> Result<f32, DeserializeError>
fn deserialize_f64(&mut self) -> Result<f64, DeserializeError>
fn deserialize_bool(&mut self) -> Result<bool, DeserializeError>
fn deserialize_char(&mut self) -> Result<char, DeserializeError>
fn deserialize_string(&mut self) -> Result<String, DeserializeError>
fn is_null(&mut self) -> Result<bool, DeserializeError>
fn begin_seq(&mut self) -> Result<NsdSeqAccess, DeserializeError> with stores[self]
fn begin_map(&mut self) -> Result<NsdMapAccess, DeserializeError> with stores[self]
fn begin_struct(&mut self, name: &String, num_fields: i32) -> Result<NsdStructAccess, DeserializeError> with stores[self]
fn begin_variant(&mut self, type_name: &String, num_cases: i32) -> Result<NsdVariantAccess, DeserializeError> with stores[self]
fn deserialize_any<V: Visitor>(&mut self, visitor: &mut V) -> Result<V::Value, DeserializeError>