Struct scale_info::Variant
source · pub struct Variant<T: Form = MetaForm> {
pub name: T::String,
pub fields: Vec<Field<T>>,
pub index: u8,
pub docs: Vec<T::String>,
}
Expand description
A struct enum variant with either named (struct) or unnamed (tuple struct) fields.
Example
enum Operation {
Zero,
// ^^^^ this is a unit struct enum variant
Add(i32, i32),
// ^^^^^^^^^^^^^ this is a tuple-struct enum variant
Minus { source: i32 }
// ^^^^^^^^^^^^^^^^^^^^^ this is a struct enum variant
}
Fields§
§name: T::String
The name of the variant.
fields: Vec<Field<T>>
The fields of the variant.
index: u8
Index of the variant, used in parity-scale-codec
.
The value of this will be, in order of precedence:
1. The explicit index defined by a #[codec(index = N)]
attribute.
2. The implicit index from the position of the variant in the enum
definition.
docs: Vec<T::String>
Documentation
Implementations§
source§impl<T> Variant<T>where
T: Form,
impl<T> Variant<T>where
T: Form,
sourcepub fn name(&self) -> &T::String
👎Deprecated since 2.5.0: Prefer to access the fields directly; this getter will be removed in the next major version
pub fn name(&self) -> &T::String
Returns the name of the variant.
sourcepub fn fields(&self) -> &[Field<T>]
👎Deprecated since 2.5.0: Prefer to access the fields directly; this getter will be removed in the next major version
pub fn fields(&self) -> &[Field<T>]
Returns the fields of the struct variant.
Trait Implementations§
source§impl<T: Form> Decode for Variant<T>where
T::String: Decode,
Vec<Field<T>>: Decode,
Vec<T::String>: Decode,
impl<T: Form> Decode for Variant<T>where
T::String: Decode,
Vec<Field<T>>: Decode,
Vec<T::String>: Decode,
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
Attempt to deserialise the value from input.
source§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
source§impl<'de, T: Form> Deserialize<'de> for Variant<T>where
T::Type: DeserializeOwned,
T::String: DeserializeOwned,
impl<'de, T: Form> Deserialize<'de> for Variant<T>where
T::Type: DeserializeOwned,
T::String: DeserializeOwned,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<T: Form> Encode for Variant<T>where
T::String: Encode,
Vec<Field<T>>: Encode,
Vec<T::String>: Encode,
impl<T: Form> Encode for Variant<T>where
T::String: Encode,
Vec<Field<T>>: Encode,
Vec<T::String>: Encode,
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
Convert self to a slice and append it to the destination.
source§fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
Convert self to a slice and then invoke the given closure with it.
source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
source§impl IntoPortable for Variant
impl IntoPortable for Variant
§type Output = Variant<PortableForm>
type Output = Variant<PortableForm>
The portable version of
Self
.source§fn into_portable(self, registry: &mut Registry) -> Self::Output
fn into_portable(self, registry: &mut Registry) -> Self::Output
Convert
self
to the portable form by using the registry for caching.source§impl<T: Ord + Form> Ord for Variant<T>where
T::String: Ord,
impl<T: Ord + Form> Ord for Variant<T>where
T::String: Ord,
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl<T: PartialEq + Form> PartialEq<Variant<T>> for Variant<T>where
T::String: PartialEq,
impl<T: PartialEq + Form> PartialEq<Variant<T>> for Variant<T>where
T::String: PartialEq,
source§impl<T: PartialOrd + Form> PartialOrd<Variant<T>> for Variant<T>where
T::String: PartialOrd,
impl<T: PartialOrd + Form> PartialOrd<Variant<T>> for Variant<T>where
T::String: PartialOrd,
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read more