JsonSerializer

Struct JsonSerializer 

Source
pub struct JsonSerializer { /* private fields */ }
Expand description

JSON serializer with configurable formatting options.

Implementations§

Source§

impl JsonSerializer

Source

pub fn new() -> Self

Create a new JSON serializer with default (compact) options.

Source

pub fn with_options(options: SerializeOptions) -> Self

Create a new JSON serializer with the given options.

Source

pub fn finish(self) -> Vec<u8>

Consume the serializer and return the output bytes.

Trait Implementations§

Source§

impl Default for JsonSerializer

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl FormatSerializer for JsonSerializer

Source§

type Error = JsonSerializeError

Format-specific error type.
Source§

fn begin_struct(&mut self) -> Result<(), Self::Error>

Begin a map/object/struct.
Source§

fn field_key(&mut self, key: &str) -> Result<(), Self::Error>

Emit a field key within a struct.
Source§

fn end_struct(&mut self) -> Result<(), Self::Error>

End a map/object/struct.
Source§

fn begin_seq(&mut self) -> Result<(), Self::Error>

Begin a sequence/array.
Source§

fn end_seq(&mut self) -> Result<(), Self::Error>

End a sequence/array.
Source§

fn scalar(&mut self, scalar: ScalarValue<'_>) -> Result<(), Self::Error>

Emit a scalar value.
Source§

fn raw_serialize_shape(&self) -> Option<&'static Shape>

Returns the shape of the format’s raw capture type for serialization. Read more
Source§

fn raw_scalar(&mut self, content: &str) -> Result<(), Self::Error>

Emit a raw scalar value (for RawJson, etc.) without any encoding/escaping. Read more
Source§

fn field_metadata(&mut self, _field: &FieldItem) -> Result<(), Self::Error>

Optional: Provide field metadata before field_key is called. This allows formats like XML to extract namespace information. Default implementation does nothing.
Source§

fn struct_metadata(&mut self, _shape: &Shape) -> Result<(), Self::Error>

Optional: Provide struct/enum type metadata when beginning to serialize it. This allows formats to extract container-level attributes like xml::ns_all. Default implementation does nothing.
Source§

fn variant_metadata( &mut self, _variant: &'static Variant, ) -> Result<(), Self::Error>

Optional: Provide variant metadata before serializing an enum variant. This allows formats like XML to use the variant name as the element name for xml::elements serialization. Default implementation does nothing.
Source§

fn preferred_field_order(&self) -> FieldOrdering

Preferred field ordering for this format. Formats like XML can request attributes-first ordering to avoid buffering. Default is declaration order.
Source§

fn begin_seq_with_len(&mut self, _len: usize) -> Result<(), Self::Error>

Begin a sequence with known length. Read more
Source§

fn typed_scalar( &mut self, scalar_type: ScalarType, value: Peek<'_, '_>, ) -> Result<(), Self::Error>

Serialize a scalar with full type information. Read more
Source§

fn begin_option_some(&mut self) -> Result<(), Self::Error>

Begin serializing Option::Some(value). Read more
Source§

fn serialize_none(&mut self) -> Result<(), Self::Error>

Serialize Option::None. Read more
Source§

fn begin_enum_variant( &mut self, _variant_index: usize, _variant_name: &'static str, ) -> Result<(), Self::Error>

Begin an enum variant with its index and name. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.