[][src]Trait schemars::JsonSchema

pub trait JsonSchema {
    fn schema_name() -> String;
fn json_schema(gen: &mut SchemaGenerator) -> Schema; fn is_referenceable() -> bool { ... } }

A type which can be described as a JSON Schema document.

This is implemented for many Rust primitive and standard library types.

This can also be automatically derived on most custom types with #[derive(JsonSchema)].

Example

use schemars::{schema_for, JsonSchema};

#[derive(JsonSchema)]
struct MyStruct {
    foo: i32,
}

let my_schema = schema_for!(MyStruct);

Required methods

fn schema_name() -> String

The name of the generated JSON Schema.

This is used as the title for root schemas, and the key within the definitions property for subschemas.

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type.

If the returned schema depends on any referenceable schemas, then this method will add them to the SchemaGenerator's schema definitions.

This should not return a $ref schema.

Loading content...

Provided methods

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword.

For trivial types (such as primitives), this should return false. For more complex types, it should return true. For recursive types, this must return true to prevent infinite cycles when generating schemas.

By default, this returns true.

Loading content...

Implementations on Foreign Types

impl<T> JsonSchema for [T; 0][src]

impl<T: JsonSchema> JsonSchema for [T; 1][src]

impl<T: JsonSchema> JsonSchema for [T; 2][src]

impl<T: JsonSchema> JsonSchema for [T; 3][src]

impl<T: JsonSchema> JsonSchema for [T; 4][src]

impl<T: JsonSchema> JsonSchema for [T; 5][src]

impl<T: JsonSchema> JsonSchema for [T; 6][src]

impl<T: JsonSchema> JsonSchema for [T; 7][src]

impl<T: JsonSchema> JsonSchema for [T; 8][src]

impl<T: JsonSchema> JsonSchema for [T; 9][src]

impl<T: JsonSchema> JsonSchema for [T; 10][src]

impl<T: JsonSchema> JsonSchema for [T; 11][src]

impl<T: JsonSchema> JsonSchema for [T; 12][src]

impl<T: JsonSchema> JsonSchema for [T; 13][src]

impl<T: JsonSchema> JsonSchema for [T; 14][src]

impl<T: JsonSchema> JsonSchema for [T; 15][src]

impl<T: JsonSchema> JsonSchema for [T; 16][src]

impl<T: JsonSchema> JsonSchema for [T; 17][src]

impl<T: JsonSchema> JsonSchema for [T; 18][src]

impl<T: JsonSchema> JsonSchema for [T; 19][src]

impl<T: JsonSchema> JsonSchema for [T; 20][src]

impl<T: JsonSchema> JsonSchema for [T; 21][src]

impl<T: JsonSchema> JsonSchema for [T; 22][src]

impl<T: JsonSchema> JsonSchema for [T; 23][src]

impl<T: JsonSchema> JsonSchema for [T; 24][src]

impl<T: JsonSchema> JsonSchema for [T; 25][src]

impl<T: JsonSchema> JsonSchema for [T; 26][src]

impl<T: JsonSchema> JsonSchema for [T; 27][src]

impl<T: JsonSchema> JsonSchema for [T; 28][src]

impl<T: JsonSchema> JsonSchema for [T; 29][src]

impl<T: JsonSchema> JsonSchema for [T; 30][src]

impl<T: JsonSchema> JsonSchema for [T; 31][src]

impl<T: JsonSchema> JsonSchema for [T; 32][src]

impl JsonSchema for Weekday[src]

impl JsonSchema for NaiveDate[src]

impl JsonSchema for NaiveDateTime[src]

impl JsonSchema for NaiveTime[src]

impl<Tz: TimeZone> JsonSchema for DateTime<Tz>[src]

impl<T: JsonSchema> JsonSchema for Option<T>[src]

impl<T: ?Sized> JsonSchema for PhantomData<T>[src]

impl JsonSchema for Infallible[src]

impl<'a, T: ?Sized> JsonSchema for &'a T where
    T: JsonSchema
[src]

impl<'a, T: ?Sized> JsonSchema for &'a mut T where
    T: JsonSchema
[src]

impl<T: ?Sized> JsonSchema for Box<T> where
    T: JsonSchema
[src]

impl<T: ?Sized> JsonSchema for Rc<T> where
    T: JsonSchema
[src]

impl<T: ?Sized> JsonSchema for Arc<T> where
    T: JsonSchema
[src]

impl<T: ?Sized> JsonSchema for Mutex<T> where
    T: JsonSchema
[src]

impl<T: ?Sized> JsonSchema for RwLock<T> where
    T: JsonSchema
[src]

impl<T: ?Sized> JsonSchema for Cell<T> where
    T: JsonSchema
[src]

impl<T: ?Sized> JsonSchema for RefCell<T> where
    T: JsonSchema
[src]

impl<'a, T: ToOwned + ?Sized> JsonSchema for Cow<'a, T> where
    T: JsonSchema
[src]

impl<K: Ord, V> JsonSchema for BTreeMap<K, V> where
    K: Into<String>,
    V: JsonSchema
[src]

impl<K: Eq + Hash, V, H: BuildHasher> JsonSchema for HashMap<K, V, H> where
    K: Into<String>,
    V: JsonSchema
[src]

impl JsonSchema for str[src]

impl JsonSchema for String[src]

impl JsonSchema for bool[src]

impl JsonSchema for f32[src]

impl JsonSchema for f64[src]

impl JsonSchema for i8[src]

impl JsonSchema for i16[src]

impl JsonSchema for i32[src]

impl JsonSchema for i64[src]

impl JsonSchema for i128[src]

impl JsonSchema for isize[src]

impl JsonSchema for u8[src]

impl JsonSchema for u16[src]

impl JsonSchema for u32[src]

impl JsonSchema for u64[src]

impl JsonSchema for u128[src]

impl JsonSchema for usize[src]

impl JsonSchema for ()[src]

impl JsonSchema for char[src]

impl<T: Ord> JsonSchema for BinaryHeap<T> where
    T: JsonSchema
[src]

impl<T: Ord> JsonSchema for BTreeSet<T> where
    T: JsonSchema
[src]

impl<T: Eq + Hash, H: BuildHasher> JsonSchema for HashSet<T, H> where
    T: JsonSchema
[src]

impl<T> JsonSchema for LinkedList<T> where
    T: JsonSchema
[src]

impl<T> JsonSchema for Vec<T> where
    T: JsonSchema
[src]

impl<T> JsonSchema for VecDeque<T> where
    T: JsonSchema
[src]

impl JsonSchema for Value[src]

impl JsonSchema for Map<String, Value>[src]

impl JsonSchema for Number[src]

impl<T0: JsonSchema> JsonSchema for (T0,)[src]

impl<T0: JsonSchema, T1: JsonSchema> JsonSchema for (T0, T1)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema> JsonSchema for (T0, T1, T2)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema> JsonSchema for (T0, T1, T2, T3)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema, T7: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6, T7)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema, T7: JsonSchema, T8: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema, T7: JsonSchema, T8: JsonSchema, T9: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema, T7: JsonSchema, T8: JsonSchema, T9: JsonSchema, T10: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema, T7: JsonSchema, T8: JsonSchema, T9: JsonSchema, T10: JsonSchema, T11: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema, T7: JsonSchema, T8: JsonSchema, T9: JsonSchema, T10: JsonSchema, T11: JsonSchema, T12: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema, T7: JsonSchema, T8: JsonSchema, T9: JsonSchema, T10: JsonSchema, T11: JsonSchema, T12: JsonSchema, T13: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema, T7: JsonSchema, T8: JsonSchema, T9: JsonSchema, T10: JsonSchema, T11: JsonSchema, T12: JsonSchema, T13: JsonSchema, T14: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)[src]

impl<T0: JsonSchema, T1: JsonSchema, T2: JsonSchema, T3: JsonSchema, T4: JsonSchema, T5: JsonSchema, T6: JsonSchema, T7: JsonSchema, T8: JsonSchema, T9: JsonSchema, T10: JsonSchema, T11: JsonSchema, T12: JsonSchema, T13: JsonSchema, T14: JsonSchema, T15: JsonSchema> JsonSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)[src]

Loading content...

Implementors

Loading content...