pub enum Schema {
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

Fields

§name: Name

A reference to another schema.

Implementations§

source§

impl Schema

source

pub fn canonical_form(&self) -> String

Converts self into its Parsing Canonical Form.

source

pub fn fingerprint<D: Digest>(&self) -> SchemaFingerprint

Generate fingerprint of Schema’s Parsing Canonical Form.

source

pub fn parse_str(input: &str) -> Result<Schema, Error>

Create a Schema from a string representing a JSON Avro schema.

source

pub fn parse_list(input: &[&str]) -> AvroResult<Vec<Schema>>

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.

source

pub fn parse_reader(reader: &mut (impl Read + ?Sized)) -> AvroResult<Schema>

Create a Schema from a reader which implements Read.

source

pub fn parse(value: &Value) -> AvroResult<Schema>

Parses an Avro schema from JSON.

source

pub fn custom_attributes(&self) -> Option<&BTreeMap<String, Value>>

Returns the custom attributes (metadata) if the schema supports them.

source

pub fn name(&self) -> Option<&Name>

Returns the name of the schema if it has one.

source

pub fn namespace(&self) -> Namespace

Returns the namespace of the schema if it has one.

Trait Implementations§

source§

impl Clone for Schema

source§

fn clone(&self) -> Schema

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Schema

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'_enum> From<&'_enum Schema> for SchemaKind

source§

fn from(val: &'_enum Schema) -> SchemaKind

Converts to this type from the input type.
source§

impl From<Schema> for SchemaKind

source§

fn from(val: Schema) -> SchemaKind

Converts to this type from the input type.
source§

impl PartialEq<Schema> for Schema

source§

fn eq(&self, other: &Self) -> bool

Assess equality of two Schema based on Parsing Canonical Form.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Schema

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>where S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<'s> TryFrom<&'s Schema> for ResolvedSchema<'s>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(schema: &'s Schema) -> AvroResult<Self>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V