pub enum SkipSerialization {
    Never,
    Null(bool),
    Empty(bool),
}
Expand description

Defines behavior for skipping the serialization of fields.

This behavior is configured via the skip_serialization attribute on fields of structs. It is passed as parameter to ToValue::skip_serialization of the corresponding field.

The default for fields in derived structs is SkipSerialization::Null(true), which will skips null values under the field recursively. Newtype structs (MyType(T)) and enums pass through to their inner type and variant, respectively.

§Example

#[derive(Debug, Empty, ToValue)]
struct Helper {
    #[metastructure(skip_serialization = "never")]
    items: Annotated<Array<String>>,
}

Variants§

§

Never

Serialize all values. Missing values will be serialized as null.

§

Null(bool)

Do not serialize null values but keep empty collections.

If the bool flag is set to true, this applies to all descendants recursively; if it is set to false, this only applies to direct children and does not propagate down.

§

Empty(bool)

Do not serialize empty objects as indicated by the Empty trait.

If the bool flag is set to true, this applies to all descendants recursively; if it is set to false, this only applies to direct children and does not propagate down.

Implementations§

source§

impl SkipSerialization

source

pub fn descend(self) -> Self

Returns the serialization behavior for child elements.

Shallow behaviors - Null(false) and Empty(false) - propagate as Never, all others remain the same. This allows empty containers to be skipped while their contents will serialize with null values.

Trait Implementations§

source§

impl Clone for SkipSerialization

source§

fn clone(&self) -> SkipSerialization

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SkipSerialization

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SkipSerialization

source§

fn default() -> Self

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

impl PartialEq for SkipSerialization

source§

fn eq(&self, other: &SkipSerialization) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for SkipSerialization

source§

impl Eq for SkipSerialization

source§

impl StructuralPartialEq for SkipSerialization

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> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>,

§

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V