[][src]Struct kiwi_schema::Def

pub struct Def {
    pub name: String,
    pub index: i32,
    pub kind: DefKind,
    pub fields: Vec<Field>,
    pub field_value_to_index: HashMap<u32, usize>,
    pub field_name_to_index: HashMap<String, usize>,
}

Represents a single definition in a Schema. Kiwi enums, structs, and messages are all represented using this object.

Fields

name: String

The name of this field from the textual Kiwi schema.

index: i32

The index of this Def in the defs field of the parent Schema. This is used as the type identifier for any fields with this type.

kind: DefKind

Either Enum, Struct, or Message.

fields: Vec<Field>

All fields in this definition. The order matters for struct definitions.

field_value_to_index: HashMap<u32, usize>

Maps the value and name members of each Field in the fields array to its index in that array. This is helpful when decoding and encoding a field to be able to quickly get to the field metadata.

field_name_to_index: HashMap<String, usize>

Implementations

impl Def[src]

pub fn new(name: String, kind: DefKind, fields: Vec<Field>) -> Def[src]

pub fn field(&self, name: &str) -> Option<&Field>[src]

Returns the Field with the provided name if one exists.

Trait Implementations

impl Debug for Def[src]

impl PartialEq<Def> for Def[src]

impl StructuralPartialEq for Def[src]

Auto Trait Implementations

impl RefUnwindSafe for Def

impl Send for Def

impl Sync for Def

impl Unpin for Def

impl UnwindSafe for Def

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.