VariantFormat

Enum VariantFormat 

Source
pub enum VariantFormat {
    Unit,
    NewtypeScalar {
        inner_shape: &'static Shape,
    },
    NewtypeStruct {
        inner_shape: &'static Shape,
    },
    NewtypeTuple {
        inner_shape: &'static Shape,
        arity: usize,
    },
    NewtypeOther {
        inner_shape: &'static Shape,
    },
    Tuple {
        arity: usize,
    },
    Struct,
}
Expand description

Classification of an enum variant’s expected serialized format.

This is used by deserializers to determine how to parse untagged enum variants based on the YAML/JSON/etc. value type they encounter.

Variants§

§

Unit

Unit variant: no fields, serializes as the variant name or nothing for untagged

§

NewtypeScalar

Newtype variant wrapping a scalar type (String, numbers, bool, etc.) Serializes as just the scalar value for untagged enums.

Fields

§inner_shape: &'static Shape

The shape of the inner scalar type

§

NewtypeStruct

Newtype variant wrapping a struct Serializes as a mapping for untagged enums.

Fields

§inner_shape: &'static Shape

The shape of the inner struct type

§

NewtypeTuple

Newtype variant wrapping a tuple struct/tuple Serializes as a sequence for untagged enums.

Fields

§inner_shape: &'static Shape

The shape of the inner tuple type

§arity: usize

Number of elements in the inner tuple

§

NewtypeOther

Newtype variant wrapping another type (enum, sequence, etc.)

Fields

§inner_shape: &'static Shape

The shape of the inner type

§

Tuple

Tuple variant with multiple fields Serializes as a sequence for untagged enums.

Fields

§arity: usize

Number of fields in the tuple

§

Struct

Struct variant with named fields Serializes as a mapping for untagged enums.

Implementations§

Source§

impl VariantFormat

Source

pub fn from_variant(variant: &'static Variant) -> Self

Classify a variant’s expected serialized format.

Source

pub fn expects_scalar(&self) -> bool

Returns true if this variant expects a scalar value in untagged format.

Source

pub fn expects_sequence(&self) -> bool

Returns true if this variant expects a sequence in untagged format.

Source

pub fn expects_mapping(&self) -> bool

Returns true if this variant expects a mapping in untagged format.

Source

pub fn is_unit(&self) -> bool

Returns true if this is a unit variant (no data).

Trait Implementations§

Source§

impl Clone for VariantFormat

Source§

fn clone(&self) -> VariantFormat

Returns a duplicate 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 VariantFormat

Source§

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

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

impl PartialEq for VariantFormat

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for VariantFormat

Source§

impl Eq for VariantFormat

Source§

impl StructuralPartialEq for VariantFormat

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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,

Source§

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

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.