pub enum Value {
Unit,
Bool(bool),
Int(i64),
Float(f64),
Text(String),
Enum {
variant: u32,
fields: Vec<Value>,
},
Optional(Option<Box<Value>>),
Record(Vec<Value>),
List(Vec<Value>),
}Expand description
A schema-checked value. Records and enum payloads keep field order from their definition, so encoders never need field names on hot paths.
Variants§
Unit
Bool(bool)
Int(i64)
Float(f64)
Text(String)
Enum
Optional(Option<Box<Value>>)
Record(Vec<Value>)
List(Vec<Value>)
Implementations§
Source§impl Value
impl Value
pub fn unit_variant(index: u32) -> Self
pub fn none() -> Self
pub fn some(value: Value) -> Self
Sourcepub fn check(&self, ty: &Type, types: &TypeTable) -> Result<(), SchemaError>
pub fn check(&self, ty: &Type, types: &TypeTable) -> Result<(), SchemaError>
Verify that this value matches ty. Floats must be finite so every
encoding can represent them.
pub fn kind_name(&self) -> &'static str
Sourcepub fn default_for(ty: &Type, types: &TypeTable) -> Result<Value, SchemaError>
pub fn default_for(ty: &Type, types: &TypeTable) -> Result<Value, SchemaError>
The type’s zero value, used when a declaration omits an initial value.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Value
impl<'de> Deserialize<'de> for Value
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
impl StructuralPartialEq for Value
Auto Trait Implementations§
impl Freeze for Value
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnsafeUnpin for Value
impl UnwindSafe for Value
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