Struct schemars::gen::SchemaGenerator [−][src]
pub struct SchemaGenerator { /* fields omitted */ }
Expand description
The main type used to generate JSON Schemas.
Example
use schemars::{JsonSchema, gen::SchemaGenerator};
#[derive(JsonSchema)]
struct MyStruct {
foo: i32,
}
let gen = SchemaGenerator::default();
let schema = gen.into_root_schema_for::<MyStruct>();
Implementations
Creates a new SchemaGenerator
using the given settings.
Borrows the SchemaSettings
being used by this SchemaGenerator
.
Example
use schemars::gen::SchemaGenerator;
let gen = SchemaGenerator::default();
let settings = gen.settings();
assert_eq!(settings.option_add_null_type, true);
This method no longer has any effect.
Use Schema::Bool(true)
instead
Use Schema::Bool(false)
instead
Generates a JSON Schema for the type T
, and returns either the schema itself or a $ref
schema referencing T
’s schema.
If T
is referenceable, this will add T
’s schema to this generator’s definitions, and
return a $ref
schema referencing that schema. Otherwise, this method behaves identically to JsonSchema::json_schema
.
If T
’s schema depends on any referenceable schemas, then this method will
add them to the SchemaGenerator
’s schema definitions.
Borrows the collection of all referenceable schemas that have been generated.
The keys of the returned Map
are the schema names, and the values are the schemas
themselves.
Mutably borrows the collection of all referenceable schemas that have been generated.
The keys of the returned Map
are the schema names, and the values are the schemas
themselves.
Returns the collection of all referenceable schemas that have been generated, leaving an empty map in its place.
The keys of the returned Map
are the schema names, and the values are the schemas
themselves.
Returns an iterator over the visitors being used by this SchemaGenerator
.
Generates a root JSON Schema for the type T
.
If T
’s schema depends on any referenceable schemas, then this method will
add them to the SchemaGenerator
’s schema definitions and include them in the returned SchemaObject
’s
definitions
Consumes self
and generates a root JSON Schema for the type T
.
If T
’s schema depends on any referenceable schemas, then this method will
include them in the returned SchemaObject
’s definitions
pub fn root_schema_for_value<T: ?Sized + Serialize>(
&mut self,
value: &T
) -> Result<RootSchema, Error>
pub fn root_schema_for_value<T: ?Sized + Serialize>(
&mut self,
value: &T
) -> Result<RootSchema, Error>
Generates a root JSON Schema for the given example value.
If the value implements JsonSchema
, then prefer using the root_schema_for()
function which will generally produce a more precise schema, particularly when the value contains any enums.
pub fn into_root_schema_for_value<T: ?Sized + Serialize>(
self,
value: &T
) -> Result<RootSchema, Error>
pub fn into_root_schema_for_value<T: ?Sized + Serialize>(
self,
value: &T
) -> Result<RootSchema, Error>
Consumes self
and generates a root JSON Schema for the given example value.
If the value implements JsonSchema
, then prefer using the into_root_schema_for()!
function which will generally produce a more precise schema, particularly when the value contains any enums.
Attemps to find the schema that the given schema
is referencing.
If the given schema
has a $ref
property which refers
to another schema in self
’s schema definitions, the referenced schema will be returned. Otherwise, returns None
.
Example
use schemars::{JsonSchema, gen::SchemaGenerator};
#[derive(JsonSchema)]
struct MyStruct {
foo: i32,
}
let mut gen = SchemaGenerator::default();
let ref_schema = gen.subschema_for::<MyStruct>();
assert!(ref_schema.is_ref());
let dereferenced = gen.dereference(&ref_schema);
assert!(dereferenced.is_some());
assert!(!dereferenced.unwrap().is_ref());
assert_eq!(dereferenced, gen.definitions().get("MyStruct"));
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for SchemaGenerator
impl !Send for SchemaGenerator
impl !Sync for SchemaGenerator
impl Unpin for SchemaGenerator
impl !UnwindSafe for SchemaGenerator
Blanket Implementations
Mutably borrows from an owned value. Read more