pub struct DefaultOnError<A = Same>(/* private fields */);Expand description
Uses the Default if a value cannot be deserialized.
The value is deserialized with the adapter A (by default Same). If
that fails, the default value is used instead and the rest of the value
is skipped (see Sink::recover). Only errors of the value are
handled, errors of the data format and of layers (such as
Limits) still fail the deserialization. Missing
values are handled by the inner adapter. Serialization uses the inner
adapter.
use deser::Deserialize;
use deser::adapters::DefaultOnError;
#[derive(Deserialize)]
pub enum Kind {
A,
B,
}
#[derive(Deserialize)]
pub struct Item {
// unknown kinds become `None`
#[deser(as = DefaultOnError)]
kind: Option<Kind>,
}Trait Implementations§
Source§impl<'de, T: Default + Send, A: Deserialize<'de, T>> Deserialize<'de, T> for DefaultOnError<A>
impl<'de, T: Default + Send, A: Deserialize<'de, T>> Deserialize<'de, T> for DefaultOnError<A>
Source§fn deserialize_into<'out>(
out: &'out mut Option<T>,
state: &mut State,
) -> SinkHandle<'out, 'de>
fn deserialize_into<'out>( out: &'out mut Option<T>, state: &mut State, ) -> SinkHandle<'out, 'de>
Creates a sink that deserializes the value into the given slot. Read more
Source§fn expecting() -> Cow<'static, str>
fn expecting() -> Cow<'static, str>
Returns what the value expects, for error messages. Read more
Source§fn describe_type(d: &mut dyn Describe)
fn describe_type(d: &mut dyn Describe)
Describes the Rust shape of the type. Read more
Source§fn initial_value() -> Option<T>
fn initial_value() -> Option<T>
Provides the value of a missing struct field. Read more
Source§fn deserialize_atom(
slot: &mut Slot<T, Self>,
atom: Atom<'_>,
state: &mut State,
) -> Result<(), Error>
fn deserialize_atom( slot: &mut Slot<T, Self>, atom: Atom<'_>, state: &mut State, ) -> Result<(), Error>
Deserializes an atom into the slot. Read more
Source§fn deserialize_borrowed_atom(
slot: &mut Slot<T, Self>,
atom: Atom<'de>,
state: &mut State,
) -> Result<(), Error>
fn deserialize_borrowed_atom( slot: &mut Slot<T, Self>, atom: Atom<'de>, state: &mut State, ) -> Result<(), Error>
Deserializes an atom that borrows from the data being deserialized
into the slot. Read more
Source§fn deserialize_update<'out>(
value: &'out mut T,
state: &mut State,
) -> SinkHandle<'out, 'de>
fn deserialize_update<'out>( value: &'out mut T, state: &mut State, ) -> SinkHandle<'out, 'de>
Creates a sink that updates an existing value. Read more
Source§impl<T: ?Sized, A: Serialize<T>> Serialize<T> for DefaultOnError<A>
impl<T: ?Sized, A: Serialize<T>> Serialize<T> for DefaultOnError<A>
Source§fn serialize<'a>(value: &'a T, state: &mut State) -> Result<Emit<'a>, Error>
fn serialize<'a>(value: &'a T, state: &mut State) -> Result<Emit<'a>, Error>
Serializes the value.
Source§fn finish(value: &T, state: &mut State) -> Result<(), Error>
fn finish(value: &T, state: &mut State) -> Result<(), Error>
Invoked after the serialization finished. Read more
Source§fn container_shape(value: &T) -> ContainerShape
fn container_shape(value: &T) -> ContainerShape
Returns the shape of the value if it’s a map or sequence. Read more
Auto Trait Implementations§
impl<A> Freeze for DefaultOnError<A>
impl<A> RefUnwindSafe for DefaultOnError<A>
impl<A> Send for DefaultOnError<A>
impl<A> Sync for DefaultOnError<A>
impl<A> Unpin for DefaultOnError<A>
impl<A> UnsafeUnpin for DefaultOnError<A>
impl<A> UnwindSafe for DefaultOnError<A>
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