Skip to main content

Schema

Trait Schema 

Source
pub trait Schema {
    // Required method
    fn schema(registry: &mut SchemaRegistry) -> SchemaObject;

    // Provided method
    fn schema_name() -> Option<&'static str> { ... }
}
Expand description

Types that can describe themselves as JSON Schema.

Required Methods§

Source

fn schema(registry: &mut SchemaRegistry) -> SchemaObject

The schema definition of this type. Use SchemaRegistry::subschema for nested types.

Provided Methods§

Source

fn schema_name() -> Option<&'static str>

Stable component name. Named types are emitted once under components.schemas and referenced with $ref.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Schema for String

Source§

impl Schema for Value

Any JSON value: the empty schema.

Source§

impl Schema for bool

Source§

impl Schema for f32

Source§

impl Schema for f64

Source§

impl Schema for i8

Source§

impl Schema for i16

Source§

impl Schema for i32

Source§

impl Schema for i64

Source§

impl Schema for i128

Source§

impl Schema for isize

Source§

impl Schema for str

Source§

impl Schema for u8

Source§

impl Schema for u16

Source§

impl Schema for u32

Source§

impl Schema for u64

Source§

impl Schema for u128

Source§

impl Schema for usize

Source§

impl<A: Schema + 'static, B: Schema + 'static, C: Schema + 'static, D: Schema + 'static> Schema for (A, B, C, D)

Source§

impl<A: Schema + 'static, B: Schema + 'static, C: Schema + 'static> Schema for (A, B, C)

Source§

impl<A: Schema + 'static, B: Schema + 'static> Schema for (A, B)

Source§

impl<A: Schema + 'static> Schema for (A,)

Source§

impl<T: Schema + 'static, S: 'static> Schema for HashMap<String, T, S>

Source§

impl<T: Schema + 'static> Schema for BTreeMap<String, T>

Source§

impl<T: Schema + 'static> Schema for Option<T>

Source§

impl<T: Schema + 'static> Schema for Vec<T>

Source§

impl<T: Schema + 'static> Schema for [T]

Source§

impl<T: Schema + ?Sized + 'static> Schema for &T

Source§

impl<T: Schema + ?Sized + 'static> Schema for Box<T>

Implementors§

Source§

impl Schema for Email

Source§

impl Schema for HttpUrl

Source§

impl Schema for IpAddress

Source§

impl Schema for Ipv4Address

Source§

impl Schema for Ipv6Address

Source§

impl Schema for NegativeInt

Source§

impl Schema for NonNegativeInt

Source§

impl Schema for PositiveInt

Source§

impl Schema for SecretString

Source§

impl Schema for Url

Source§

impl Schema for Uuid

Source§

impl<B: FloatBounds> Schema for BoundedFloat<B>

Source§

impl<T: Schema + 'static, const MIN: usize, const MAX: usize> Schema for ConstrainedVec<T, MIN, MAX>

Source§

impl<T: Schema + 'static> Schema for Change<T>

Source§

impl<const MAX_DIGITS: u32, const DECIMAL_PLACES: u32> Schema for Decimal<MAX_DIGITS, DECIMAL_PLACES>

Source§

impl<const MIN: i64, const MAX: i64> Schema for BoundedI64<MIN, MAX>

Source§

impl<const MIN: usize, const MAX: usize> Schema for ConstrainedString<MIN, MAX>