Trait schemars::JsonSchema
source · [−]pub trait JsonSchema {
fn schema_name() -> String;
fn json_schema(gen: &mut SchemaGenerator) -> Schema;
fn is_referenceable() -> bool { ... }
}Expand description
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
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 root’s definitions property for subschemas.
fn json_schema(gen: &mut SchemaGenerator) -> Schema
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
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.