Struct Schema

Source
pub struct Schema {
    pub deprecated: Option<String>,
    pub description: Option<String>,
    pub name: Option<String>,
    pub nullable: bool,
    pub ty: SchemaType,
}
Expand description

Describes the metadata and shape of a type.

Fields§

§deprecated: Option<String>§description: Option<String>§name: Option<String>§nullable: bool§ty: SchemaType

Implementations§

Source§

impl Schema

Source

pub fn new(ty: impl Into<SchemaType>) -> Self

Create a schema with the provided type.

Source

pub fn array(value: ArrayType) -> Self

Create an array schema.

Source

pub fn boolean(value: BooleanType) -> Self

Create a boolean schema.

Source

pub fn enumerable(value: EnumType) -> Self

Create an enum schema.

Source

pub fn float(value: FloatType) -> Self

Create a float schema.

Source

pub fn integer(value: IntegerType) -> Self

Create an integer schema.

Source

pub fn literal(value: LiteralType) -> Self

Create a literal schema.

Source

pub fn literal_value(value: LiteralValue) -> Self

Create a literal schema with the provided value.

Source

pub fn object(value: ObjectType) -> Self

Create an object schema.

Source

pub fn string(value: StringType) -> Self

Create a string schema.

Source

pub fn structure(value: StructType) -> Self

Create a struct schema.

Source

pub fn tuple(value: TupleType) -> Self

Create a tuple schema.

Source

pub fn union(value: UnionType) -> Self

Create a union schema.

Source

pub fn null() -> Self

Create a null schema.

Source

pub fn unknown() -> Self

Create an unknown schema.

Source

pub fn nullify(&mut self)

Convert the current schema to a nullable type. If already nullable, do nothing, otherwise convert to a union.

Source

pub fn partialize(&mut self)

Mark the inner schema type as partial. Only structs and unions can be marked partial, but arrays and objects will also be recursively set to update the inner type.

Methods from Deref<Target = SchemaType>§

Source

pub fn get_default(&self) -> Option<&LiteralValue>

Return a default value from the inner schema type.

Source

pub fn is_null(&self) -> bool

Return true if the schema is an explicit null.

Source

pub fn is_nullable(&self) -> bool

Return true if the schema is nullable (a union with a null).

Source

pub fn is_reference(&self) -> bool

Return true if the schema is a reference.

Source

pub fn is_struct(&self) -> bool

Return true if the schema is a struct.

Source

pub fn set_default(&mut self, default: LiteralValue)

Set the default of the inner schema type.

Source

pub fn add_field(&mut self, key: &str, value: impl Into<SchemaField>)

Add a field to the type if it’s a struct.

Trait Implementations§

Source§

impl Clone for Schema

Source§

fn clone(&self) -> Schema

Returns a duplicate of the value. Read more
1.0.0 · Source§

const 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 Default for Schema

Source§

fn default() -> Schema

Returns the “default value” for a type. Read more
Source§

impl Deref for Schema

Source§

type Target = SchemaType

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl DerefMut for Schema

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl Display for Schema

Source§

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

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

impl From<Schema> for SchemaField

Source§

fn from(schema: Schema) -> Self

Converts to this type from the input type.
Source§

impl From<Schema> for SchemaType

Source§

fn from(val: Schema) -> Self

Converts to this type from the input type.
Source§

impl From<SchemaBuilder> for Schema

Source§

fn from(builder: SchemaBuilder) -> Self

Converts to this type from the input type.
Source§

impl From<SchemaField> for Schema

Source§

fn from(val: SchemaField) -> Self

Converts to this type from the input type.
Source§

impl From<SchemaType> for Schema

Source§

fn from(val: SchemaType) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Schema

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Schematic for Schema

Source§

fn schema_name() -> Option<String>

Define a name for this schema type. Names are required for non-primitive values as a means to link references, and avoid cycles.
Source§

fn build_schema(schema: SchemaBuilder) -> Schema

Create and return a schema that models the structure of the implementing type. The schema can be used to generate code, documentation, or other artifacts.
Source§

impl StructuralPartialEq for Schema

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> 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

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 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.