Skip to main content

Schema

Struct Schema 

Source
pub struct Schema {
Show 20 fields pub reference: Option<String>, pub title: Option<String>, pub description: Option<String>, pub all_of: Option<Vec<Box<Schema>>>, pub kind: Option<SchemaType>, pub format: Option<String>, pub properties: Option<BTreeMap<String, SchemaProperty>>, pub minimum: Option<u64>, pub maximum: Option<u64>, pub items: Option<Box<Schema>>, pub min_items: Option<u64>, pub max_items: Option<u64>, pub unique_items: Option<bool>, pub min_length: Option<u64>, pub max_length: Option<u64>, pub required: Option<Vec<String>>, pub discriminator: Option<Discriminator>, pub xml: Option<XML>, pub external_docs: Option<ExternalDocs>, pub example: Option<Value>,
}
Expand description

JSON Schema definition for data models.

Defines the structure and constraints of data types used in the API. Can represent primitive types, objects, arrays, or references to other schemas.

§Example

use product_os_openapi::{Schema, SchemaType, SchemaProperty};
use std::collections::BTreeMap;

let mut properties = BTreeMap::new();
properties.insert("id".to_owned(), SchemaProperty {
    reference: None,
    description: Some("User ID".to_owned()),
    all_of: None,
    kind: Some(SchemaType::Integer),
    minimum: Some(1),
    items: None,
    min_items: None,
    unique_items: None,
    min_length: None,
    required: None,
});

let schema = Schema {
    reference: None,
    title: Some("User".to_owned()),
    description: Some("User model".to_owned()),
    all_of: None,
    kind: Some(SchemaType::Object),
    format: None,
    properties: Some(properties),
    minimum: None,
    maximum: None,
    items: None,
    min_items: None,
    max_items: None,
    unique_items: None,
    min_length: None,
    max_length: None,
    required: Some(vec!["id".to_owned()]),
    discriminator: None,
    xml: None,
    external_docs: None,
    example: None,
};

Fields§

§reference: Option<String>

Reference to another schema definition. When present, most other fields are ignored.

§title: Option<String>

A title for the schema.

§description: Option<String>

A description of the schema. CommonMark syntax may be used.

§all_of: Option<Vec<Box<Schema>>>

Composition of schemas using allOf (all schemas must match).

§kind: Option<SchemaType>

The data type of the schema.

§format: Option<String>

Additional format information (e.g., “email”, “date-time”, “uuid”).

§properties: Option<BTreeMap<String, SchemaProperty>>

Properties of an object schema. Maps property names to their schemas.

§minimum: Option<u64>

Minimum value for numeric types.

§maximum: Option<u64>

Maximum value for numeric types.

§items: Option<Box<Schema>>

Schema for items in an array.

§min_items: Option<u64>

Minimum number of items in an array.

§max_items: Option<u64>

Maximum number of items in an array.

§unique_items: Option<bool>

Whether array items must be unique.

§min_length: Option<u64>

Minimum length for string types.

§max_length: Option<u64>

Maximum length for string types.

§required: Option<Vec<String>>

List of required property names for object types.

§discriminator: Option<Discriminator>

Discriminator for polymorphism support.

§xml: Option<XML>

XML metadata for XML serialization.

§external_docs: Option<ExternalDocs>

Additional external documentation for this schema.

§example: Option<Value>

Example value for this schema.

Trait Implementations§

Source§

impl Clone for Schema

Source§

fn clone(&self) -> Schema

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 Debug for Schema

Source§

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

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

impl<'de> Deserialize<'de> for Schema

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
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

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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