[][src]Enum avro_rs::schema::Schema

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

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.

A union Avro schema.

Record

A record Avro schema.

The lookup table maps field names to their position in the Vec of fields.

Fields of Record

name: Namedoc: Documentationfields: Vec<RecordField>lookup: HashMap<String, usize>
Enum

An enum Avro schema.

Fields of Enum

name: Namedoc: Documentationsymbols: Vec<String>
Fixed

A fixed Avro schema.

Fields of Fixed

name: Namesize: usize
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.

Fields of Decimal

precision: usizescale: usizeinner: Box<Schema>
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

impl Schema[src]

pub fn parse_str(input: &str) -> Result<Self, Error>[src]

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

pub fn parse(value: &Value) -> AvroResult<Self>[src]

Create a Schema from a serde_json::Value representing a JSON Avro schema.

pub fn canonical_form(&self) -> String[src]

Converts self into its Parsing Canonical Form.

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

Generate fingerprint of Schema's Parsing Canonical Form.

Trait Implementations

impl Clone for Schema[src]

impl Debug for Schema[src]

impl<'_enum> From<&'_enum Schema> for SchemaKind[src]

impl From<Schema> for SchemaKind[src]

impl PartialEq<Schema> for Schema[src]

pub fn eq(&self, other: &Self) -> bool[src]

Assess equality of two Schema based on Parsing Canonical Form.

impl Serialize for Schema[src]

Auto Trait Implementations

impl RefUnwindSafe for Schema

impl Send for Schema

impl Sync for Schema

impl Unpin for Schema

impl UnwindSafe for Schema

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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