Schematic

Trait Schematic 

Source
pub trait Schematic {
    // Required method
    fn __type(
        min_length: Option<u64>,
        max_length: Option<u64>,
        pattern: Option<String>,
        format: Option<String>,
        minimum: Option<i64>,
        maximum: Option<i64>,
        multiple_of: Option<i64>,
        exclusive_minimum: Option<i64>,
        exclusive_maximum: Option<i64>,
        min_items: Option<usize>,
        max_items: Option<usize>,
        unique_items: Option<bool>,
    ) -> Type;

    // Provided methods
    fn __type_no_attr() -> Type { ... }
    fn __defs() -> Definitions { ... }
    fn __defs_map() -> DefinitionsMap { ... }
}
Expand description

A data structure that can provide any schema informations.

It is deprecated to implement this manually.

Rschema provides Schematic implementations for some Rust primitive and standard library types. All of these can be used to generate schema using Rschema.

§Implementations of Schematic provided by Rschema

  • Primitive types:
    • bool
    • i8, i16, i32, i64, isize
    • u8, u16, u32, u64, usize
    • f32, f64
    • char
    • str(&str)
  • Compound types:
    • [T; N]
    • tuples up to size 12
  • Common standard library types:
    • String
    • Option<T>
  • Wrapper types:
    • Box<T>
  • Collection types:
    • HashMap<K, V, H>
    • HashSet<T, H>
    • Vec<T>

Required Methods§

Source

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Provided Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Schematic for &str

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for bool

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for char

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for f32

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for f64

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for i8

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for i16

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for i32

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for i64

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for isize

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for u8

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for u16

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for u32

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for u64

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for ()

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for usize

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl Schematic for String

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic> Schematic for (T1,)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic> Schematic for (T1, T2)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic> Schematic for (T1, T2, T3)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic, T4: Schematic> Schematic for (T1, T2, T3, T4)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic, T4: Schematic, T5: Schematic> Schematic for (T1, T2, T3, T4, T5)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic, T4: Schematic, T5: Schematic, T6: Schematic> Schematic for (T1, T2, T3, T4, T5, T6)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic, T4: Schematic, T5: Schematic, T6: Schematic, T7: Schematic> Schematic for (T1, T2, T3, T4, T5, T6, T7)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic, T4: Schematic, T5: Schematic, T6: Schematic, T7: Schematic, T8: Schematic> Schematic for (T1, T2, T3, T4, T5, T6, T7, T8)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic, T4: Schematic, T5: Schematic, T6: Schematic, T7: Schematic, T8: Schematic, T9: Schematic> Schematic for (T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic, T4: Schematic, T5: Schematic, T6: Schematic, T7: Schematic, T8: Schematic, T9: Schematic, T10: Schematic> Schematic for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic, T4: Schematic, T5: Schematic, T6: Schematic, T7: Schematic, T8: Schematic, T9: Schematic, T10: Schematic, T11: Schematic> Schematic for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T1: Schematic, T2: Schematic, T3: Schematic, T4: Schematic, T5: Schematic, T6: Schematic, T7: Schematic, T8: Schematic, T9: Schematic, T10: Schematic, T11: Schematic, T12: Schematic> Schematic for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T: Schematic> Schematic for &[T]

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T: Schematic> Schematic for Option<T>

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T: Schematic> Schematic for &T

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

fn __type_no_attr() -> Type

Source§

fn __defs_map() -> DefinitionsMap

Source§

impl<T: Schematic> Schematic for &mut T

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

fn __type_no_attr() -> Type

Source§

fn __defs_map() -> DefinitionsMap

Source§

impl<T: Schematic> Schematic for Box<T>

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T: Schematic> Schematic for Vec<T>

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T: Schematic, S> Schematic for HashSet<T, S>

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<T: Schematic, const N: usize> Schematic for [T; N]

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Source§

impl<V: Schematic, S> Schematic for HashMap<String, V, S>

Source§

fn __type( min_length: Option<u64>, max_length: Option<u64>, pattern: Option<String>, format: Option<String>, minimum: Option<i64>, maximum: Option<i64>, multiple_of: Option<i64>, exclusive_minimum: Option<i64>, exclusive_maximum: Option<i64>, min_items: Option<usize>, max_items: Option<usize>, unique_items: Option<bool>, ) -> Type

Implementors§