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.
