pub struct Serializer { /* private fields */ }Expand description
Serializes values into Values.
This is a Serializer which builds a value
from the events of a serialized value. It’s what to_value uses, use
it directly to configure the serialization, for instance to add layers.
Every call to serialize adds a value:
use deser::ser::{Layer, Next};
use deser::{Atom, Error, Event};
use deser_value::{Serializer, value};
/// Writes all numbers as strings.
struct NumbersAsStrings;
impl Layer for NumbersAsStrings {
fn event(
&mut self,
event: Event<'_>,
next: &mut Next<'_>,
) -> Result<(), Error> {
match event {
Event::Atom(Atom::U64(value)) => {
next.emit(value.to_string().into())
}
event => next.emit(event),
}
}
}
let mut serializer = Serializer::new();
serializer.serialize(&true).unwrap();
serializer
.serialize_with(&vec![1u64, 2], |driver| {
driver.push_layer(NumbersAsStrings)
})
.unwrap();
assert_eq!(serializer.finish(), [value!(true), value!(["1", "2"])]);The event data of the serialized values (such as formatting hints) is captured in the meta data of the values.
Implementations§
Source§impl Serializer
impl Serializer
Sourcepub fn new() -> Serializer
pub fn new() -> Serializer
Creates a serializer.
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 added.
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§impl Debug for Serializer
impl Debug for Serializer
Source§impl Default for Serializer
impl Default for Serializer
Source§impl Serializer for Serializer
impl Serializer for Serializer
Auto Trait Implementations§
impl !RefUnwindSafe for Serializer
impl !UnwindSafe for Serializer
impl Freeze for Serializer
impl Send for Serializer
impl Sync for Serializer
impl Unpin for Serializer
impl UnsafeUnpin for Serializer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more