pub struct SchemaGenerator { /* private fields */ }
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);
👎 Deprecated:

This method no longer has any effect.

👎 Deprecated:

Use Schema::Bool(true) instead

👎 Deprecated:

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

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.

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Converts to this type from the input type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.