pub enum Schema {
Show 22 variants
Null,
Boolean,
Int,
Long,
Float,
Double,
Bytes,
String,
Array(Box<Schema>),
Map(Box<Schema>),
Union(UnionSchema),
Record {
name: Name,
doc: Documentation,
fields: Vec<RecordField>,
lookup: HashMap<String, usize>,
},
Enum {
name: Name,
doc: Documentation,
symbols: Vec<String>,
},
Fixed {
name: Name,
size: usize,
},
Decimal {
precision: usize,
scale: usize,
inner: Box<Schema>,
},
Uuid,
Date,
TimeMillis,
TimeMicros,
TimestampMillis,
TimestampMicros,
Duration,
}
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
A record
Avro schema.
The lookup
table maps field names to their position in the Vec
of fields
.
Enum
An enum
Avro schema.
Fixed
A fixed
Avro schema.
Decimal
Logical type which represents Decimal
values. The underlying type is serialized and
deserialized as Schema::Bytes
or Schema::Fixed
.
scale
defaults to 0 and is an integer greater than or equal to 0 and precision
is an
integer greater than 0.
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.
Duration
An amount of time defined by a number of months, days and milliseconds.
Implementations§
Source§impl Schema
impl Schema
Sourcepub fn canonical_form(&self) -> String
pub fn canonical_form(&self) -> String
Converts self
into its Parsing Canonical Form.
Sourcepub fn fingerprint<D: Digest>(&self) -> SchemaFingerprint
pub fn fingerprint<D: Digest>(&self) -> SchemaFingerprint
Generate fingerprint of Schema’s Parsing Canonical Form.
Sourcepub 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.
Sourcepub 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(value: &Value) -> AvroResult<Schema>
Trait Implementations§
Source§impl<'_enum> From<&'_enum Schema> for SchemaKind
impl<'_enum> From<&'_enum Schema> for SchemaKind
Source§fn from(val: &'_enum Schema) -> SchemaKind
fn from(val: &'_enum Schema) -> SchemaKind
Source§impl From<Schema> for SchemaKind
impl From<Schema> for SchemaKind
Source§fn from(val: Schema) -> SchemaKind
fn from(val: Schema) -> SchemaKind
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
)