pub struct Serializer { /* private fields */ }Expand description
Serializes values into JSON.
Every call to serialize writes a value. What
follows the values depends on SerializerConfig::trailing: by default
only a single value can be written, with Trailing::Newline every
value is followed by a line break (JSON Lines).
use deser_json::{Serializer, SerializerConfig, Trailing};
const LINES: SerializerConfig =
SerializerConfig::new().trailing(Trailing::Newline);
let mut serializer = Serializer::with_config(&LINES);
serializer.serialize(&vec![1, 2]).unwrap();
serializer.serialize(&"x").unwrap();
assert_eq!(serializer.finish(), "[1,2]\n\"x\"\n");The serializer is also the stream serializer of JSON (see
StreamSerializer): the output can be taken
while values are written, and large values can be written in parts.
To write to a Write use
SerializerConfig::writer:
use deser_json::SerializerConfig;
let mut writer = SerializerConfig::new().writer(Vec::new());
writer.set_buffer_limit(4);
writer.write(&vec!["a", "b", "c"]).unwrap();
assert_eq!(writer.into_inner(), br#"["a","b","c"]"#);Implementations§
Source§impl Serializer
impl Serializer
Sourcepub fn new() -> Serializer
pub fn new() -> Serializer
Creates a serializer.
Sourcepub fn with_config(config: &SerializerConfig) -> Serializer
pub fn with_config(config: &SerializerConfig) -> Serializer
Creates a serializer with the given configuration.
Sourcepub fn with_written(config: &SerializerConfig, written: usize) -> Serializer
pub fn with_written(config: &SerializerConfig, written: usize) -> Serializer
Creates a serializer for a stream that continues after the given number of values.
This is useful to append to a stream that was written before (see
SerializerConfig::trailing for what separates the values).
Sourcepub fn config(&self) -> &SerializerConfig
pub fn config(&self) -> &SerializerConfig
Returns the configuration.
Sourcepub fn serialize(&mut self, value: &dyn Serialize) -> Result<(), Error>
pub fn serialize(&mut self, value: &dyn Serialize) -> Result<(), Error>
Serializes a value.
If the value fails to serialize, nothing is written.
Sourcepub fn serialize_with<F>(
&mut self,
value: &dyn Serialize,
setup: F,
) -> Result<(), Error>where
F: FnOnce(&mut SerializeDriver<'_>),
pub fn serialize_with<F>(
&mut self,
value: &dyn Serialize,
setup: F,
) -> Result<(), Error>where
F: FnOnce(&mut SerializeDriver<'_>),
Serializes a value with a configured driver.
The callback is invoked with the driver before the value is
serialized, for instance to add Layers.
Trait Implementations§
Source§impl Clone for Serializer
impl Clone for Serializer
Source§fn clone(&self) -> Serializer
fn clone(&self) -> Serializer
Clones the serializer.
The clone of a serializer that writes a value in parts cannot write
more values (see
StreamSerializer::in_progress).
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Serializer
impl Debug for Serializer
Source§impl Default for Serializer
impl Default for Serializer
Source§fn default() -> Serializer
fn default() -> Serializer
Source§impl Serializer for Serializer
impl Serializer for Serializer
Source§impl StreamSerializer for Serializer
impl StreamSerializer for Serializer
Source§fn output(&self) -> &[u8] ⓘ
fn output(&self) -> &[u8] ⓘ
Source§fn clear_output(&mut self)
fn clear_output(&mut self)
output, for
instance because they were written.Source§fn supports_partial(&self) -> bool
fn supports_partial(&self) -> bool
Source§fn drive_partial(
&mut self,
driver: &mut SerializeDriver<'_>,
limit: usize,
) -> Result<Written, Error>
fn drive_partial( &mut self, driver: &mut SerializeDriver<'_>, limit: usize, ) -> Result<Written, Error>
Source§fn in_progress(&self) -> bool
fn in_progress(&self) -> bool
true if a value is partially serialized. Read more