Enum AvroSchema
pub enum AvroSchema {
Show 25 variants
Null,
Boolean,
Int,
Long,
Float,
Double,
Bytes,
String,
Array(Box<Schema>),
Map(Box<Schema>),
Union(UnionSchema),
Record(RecordSchema),
Enum(EnumSchema),
Fixed(FixedSchema),
Decimal(DecimalSchema),
Uuid,
Date,
TimeMillis,
TimeMicros,
TimestampMillis,
TimestampMicros,
LocalTimestampMillis,
LocalTimestampMicros,
Duration,
Ref {
name: Name,
},
}
Expand description
Represents any valid Avro schema More information about Avro schemas can be found in the Avro Specification
Variants§
Null
A null
Avro schema.
Boolean
A boolean
Avro schema.
Int
An int
Avro schema.
Long
A long
Avro schema.
Float
A float
Avro schema.
Double
A double
Avro schema.
Bytes
A bytes
Avro schema.
Bytes
represents a sequence of 8-bit unsigned bytes.
String
A string
Avro schema.
String
represents a unicode character sequence.
Array(Box<Schema>)
A array
Avro schema. Avro arrays are required to have the same type for each element.
This variant holds the Schema
for the array element type.
Map(Box<Schema>)
A map
Avro schema.
Map
holds a pointer to the Schema
of its values, which must all be the same schema.
Map
keys are assumed to be string
.
Union(UnionSchema)
A union
Avro schema.
Record(RecordSchema)
A record
Avro schema.
Enum(EnumSchema)
An enum
Avro schema.
Fixed(FixedSchema)
A fixed
Avro schema.
Decimal(DecimalSchema)
Logical type which represents Decimal
values. The underlying type is serialized and
deserialized as Schema::Bytes
or Schema::Fixed
.
Uuid
A universally unique identifier, annotating a string.
Date
Logical type which represents the number of days since the unix epoch.
Serialization format is Schema::Int
.
TimeMillis
The time of day in number of milliseconds after midnight with no reference any calendar, time zone or date in particular.
TimeMicros
The time of day in number of microseconds after midnight with no reference any calendar, time zone or date in particular.
TimestampMillis
An instant in time represented as the number of milliseconds after the UNIX epoch.
TimestampMicros
An instant in time represented as the number of microseconds after the UNIX epoch.
LocalTimestampMillis
An instant in localtime represented as the number of milliseconds after the UNIX epoch.
LocalTimestampMicros
An instant in local time represented as the number of microseconds after the UNIX epoch.
Duration
An amount of time defined by a number of months, days and milliseconds.
Ref
A reference to another schema.
Fields
name: Name
Implementations§
§impl Schema
impl Schema
pub fn canonical_form(&self) -> String
pub fn canonical_form(&self) -> String
Converts self
into its Parsing Canonical Form.
pub fn fingerprint<D>(&self) -> SchemaFingerprintwhere
D: Digest,
pub fn fingerprint<D>(&self) -> SchemaFingerprintwhere
D: Digest,
Generate fingerprint of Schema’s Parsing Canonical Form.
pub fn parse_str(input: &str) -> Result<Schema, Error>
pub fn parse_str(input: &str) -> Result<Schema, Error>
Create a Schema
from a string representing a JSON Avro schema.
pub fn parse_list(input: &[&str]) -> Result<Vec<Schema>, Error>
pub fn parse_list(input: &[&str]) -> Result<Vec<Schema>, Error>
Create a array of Schema
’s from a list of named JSON Avro schemas (Record, Enum, and
Fixed).
It is allowed that the schemas have cross-dependencies; these will be resolved during parsing.
If two of the input schemas have the same fullname, an Error will be returned.
pub fn parse_reader(reader: &mut (impl Read + ?Sized)) -> Result<Schema, Error>
pub fn parse_reader(reader: &mut (impl Read + ?Sized)) -> Result<Schema, Error>
Create a Schema
from a reader which implements Read
.
pub fn custom_attributes(&self) -> Option<&BTreeMap<String, Value>>
pub fn custom_attributes(&self) -> Option<&BTreeMap<String, Value>>
Returns the custom attributes (metadata) if the schema supports them.
Trait Implementations§
§impl Serialize for Schema
impl Serialize for Schema
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Auto Trait Implementations§
impl Freeze for Schema
impl RefUnwindSafe for Schema
impl Send for Schema
impl Sync for Schema
impl Unpin for Schema
impl UnwindSafe for Schema
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<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> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§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
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
RelabeledMetricVec::with_metric_level
.source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
RelabeledMetricVec::with_metric_level_relabel_n
.source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
RelabeledMetricVec::with_metric_level_relabel_n
with metric_level
set to
MetricLevel::Debug
and relabel_num
set to 1.