pub enum Value {
Show 19 variants
Null,
Boolean(bool),
Int(i32),
Long(i64),
Float(f32),
Double(f64),
Date(i32),
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(BTreeMap<String, Value>),
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(i32)
A Date
coming from an avro Logical Date
, which is an i32 number of
days since the Unix epoch.
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
An union
Avro value.
Fields
Array(Vec<Value>)
An array
Avro value.
Map(BTreeMap<String, Value>)
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§
source§impl Value
impl Value
sourcepub fn validate(&self, schema: SchemaNode<'_>) -> bool
pub fn validate(&self, schema: SchemaNode<'_>) -> bool
Validate the value against the given Schema2.
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§
source§impl<'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 Freeze for Value
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin 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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request