Skip to main content

Schema

Enum Schema 

Source
#[non_exhaustive]
pub enum Schema { Any, Null, Boolean, Number, Integer { min: i64, max: i64, }, Unsigned { min: u64, max: u64, }, String { min: usize, max: usize, choices: &'static [&'static str], }, Array { items: &'static Schema, min: usize, max: usize, }, Object { properties: &'static [Property], additional: bool, }, OneOf(&'static [Schema]), }
Expand description

Supported JSON Schema subset, represented without parsing schema text at runtime.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Any

Any bounded JSON value.

§

Null

Null only.

§

Boolean

Boolean only.

§

Number

Any syntactically valid JSON number.

§

Integer

Signed integer with inclusive bounds.

Fields

§min: i64

Inclusive lower bound.

§max: i64

Inclusive upper bound.

§

Unsigned

Unsigned integer with inclusive bounds, retaining all 64 bits.

Fields

§min: u64

Inclusive lower bound.

§max: u64

Inclusive upper bound.

§

String

Unicode string, with lengths in Unicode scalar values and optional allowed values.

Fields

§min: usize

Minimum character count.

§max: usize

Maximum character count.

§choices: &'static [&'static str]

Empty accepts any string; otherwise an exact enumeration.

§

Array

Array whose items all follow one schema.

Fields

§items: &'static Schema

Item schema.

§min: usize

Minimum number of items.

§max: usize

Maximum number of items.

§

Object

Object with named properties and an explicit policy for unknown names.

Fields

§properties: &'static [Property]

Known property definitions.

§additional: bool

Whether unknown properties are accepted.

§

OneOf(&'static [Schema])

Exactly one member schema must match.

Implementations§

Source§

impl Schema

Source

pub fn validate(&self, value: &Value) -> Result<(), Violation>

Validate a value; unknown properties and missing required members are checked.

Source

pub fn to_json(&self) -> Value

Emit a JSON Schema 2020-12 compatible representation for discovery.

Trait Implementations§

Source§

impl Clone for Schema

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Schema

Source§

impl Debug for Schema

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> ToOwned for T
where T: Clone,

Source§

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 T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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.