[−][src]Trait schemars::JsonSchema
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.
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
.
Implementations on Foreign Types
impl<T> JsonSchema for [T; 0]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 1]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 2]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 3]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 4]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 5]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 6]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 7]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 8]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 9]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 10]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 11]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 12]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 13]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 14]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 15]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 16]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 17]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 18]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 19]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 20]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 21]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 22]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 23]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 24]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 25]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 26]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 27]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 28]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 29]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 30]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 31]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for [T; 32]
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for Weekday
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for NaiveDate
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for NaiveDateTime
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for NaiveTime
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl<Tz: TimeZone> JsonSchema for DateTime<Tz>
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl<T: JsonSchema> JsonSchema for Option<T>
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: ?Sized> JsonSchema for PhantomData<T>
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for Infallible
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<'a, T: ?Sized> JsonSchema for &'a T where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<'a, T: ?Sized> JsonSchema for &'a mut T where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: ?Sized> JsonSchema for Box<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: ?Sized> JsonSchema for Rc<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: ?Sized> JsonSchema for Arc<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: ?Sized> JsonSchema for Mutex<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: ?Sized> JsonSchema for RwLock<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: ?Sized> JsonSchema for Cell<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: ?Sized> JsonSchema for RefCell<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<'a, T: ToOwned + ?Sized> JsonSchema for Cow<'a, T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
fn json_schema_optional(gen: &mut SchemaGenerator) -> Schema
[src]
impl<K: Ord, V> JsonSchema for BTreeMap<K, V> where
K: Into<String>,
V: JsonSchema,
[src]
K: Into<String>,
V: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<K: Eq + Hash, V, H: BuildHasher> JsonSchema for HashMap<K, V, H> where
K: Into<String>,
V: JsonSchema,
[src]
K: Into<String>,
V: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for str
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for String
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for bool
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for f32
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for f64
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for i8
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for i16
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for i32
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for i64
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for i128
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for isize
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for u8
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for u16
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for u32
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for u64
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for u128
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for usize
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for ()
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl JsonSchema for char
[src]
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(_: &mut SchemaGenerator) -> Schema
[src]
impl<T: Ord> JsonSchema for BinaryHeap<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: Ord> JsonSchema for BTreeSet<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T: Eq + Hash, H: BuildHasher> JsonSchema for HashSet<T, H> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T> JsonSchema for LinkedList<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T> JsonSchema for Vec<T> where
T: JsonSchema,
[src]
T: JsonSchema,
fn is_referenceable() -> bool
[src]
fn schema_name() -> String
[src]
fn json_schema(gen: &mut SchemaGenerator) -> Schema
[src]
impl<T> JsonSchema for VecDeque<T> where
T: JsonSchema,
[src]
T: JsonSchema,