pub enum Value {
Show 19 variants
Null,
Boolean(bool),
Int(i32),
Long(i64),
Float(f32),
Double(f64),
Date(NaiveDate),
Timestamp(NaiveDateTime),
Decimal(DecimalValue),
Bytes(Vec<u8>),
String(String),
Fixed(usize, Vec<u8>),
Enum(usize, String),
Union {
index: usize,
inner: Box<Value>,
n_variants: usize,
null_variant: Option<usize>,
},
Array(Vec<Value>),
Map(AvroMap),
Record(Vec<(String, Value)>),
Json(Value),
Uuid(Uuid),
}
Expand description
Represents any valid Avro value More information about Avro values can be found in the Avro Specification
Variants
Null
A null
Avro value.
Boolean(bool)
A boolean
Avro value.
Int(i32)
A int
Avro value.
Long(i64)
A long
Avro value.
Float(f32)
A float
Avro value.
Double(f64)
A double
Avro value.
Date(NaiveDate)
A Date
coming from an avro Logical Date
Timestamp(NaiveDateTime)
A DateTime
coming from an avro Logical Timestamp
Decimal(DecimalValue)
A decimal
Avro value
The value of the decimal can be computed as follows: unscaled × 10-scale.
Bytes(Vec<u8>)
A bytes
Avro value.
String(String)
A string
Avro value.
Fixed(usize, Vec<u8>)
A fixed
Avro value.
The size of the fixed value is represented as a usize
.
Enum(usize, String)
An enum
Avro value.
An Enum is represented by a symbol and its position in the symbols list of its corresponding schema. This allows schema-less encoding, as well as schema resolution while reading values.
Union
Fields
index: usize
The index of this variant in the reader schema
n_variants: usize
The number of variants in the reader schema
An union
Avro value.
Array(Vec<Value>)
An array
Avro value.
Map(AvroMap)
A map
Avro value.
Record(Vec<(String, Value)>)
A record
Avro value.
A Record is represented by a vector of (<field name>
, value
).
This allows schema-less encoding.
See Record for a more user-friendly support.
Json(Value)
A string
Avro value that has been interpreted as JSON.
This is not part of the Avro spec, but is emitted by Debezium,
and distinguished by setting the "connect.name"
property to "io.debezium.data.Json"
.
Uuid(Uuid)
A Uuid
coming from an avro Logical uuid
.
Implementations
sourceimpl Value
impl Value
sourcepub fn validate(&self, schema: SchemaNode<'_>) -> bool
pub fn validate(&self, schema: SchemaNode<'_>) -> bool
Validate the value against the given Schema.
See the Avro specification for the full set of rules of schema validation.
pub fn into_string(self) -> Option<String>
pub fn into_nullable_bool(self) -> Option<bool>
pub fn into_integral(self) -> Option<i64>
pub fn into_usize(self) -> Option<usize>
Trait Implementations
sourceimpl<'a> AvroDeserializer for &'a Value
impl<'a> AvroDeserializer for &'a Value
fn deserialize<R: AvroRead, D: AvroDecode>(
self,
_r: &mut R,
d: D
) -> Result<D::Out, AvroError>
impl StructuralPartialEq for Value
Auto Trait Implementations
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnwindSafe for Value
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more