[−][src]Struct schemars::gen::SchemaGenerator
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>();
Methods
impl SchemaGenerator
[src]
pub fn new(settings: SchemaSettings) -> SchemaGenerator
[src]
Creates a new SchemaGenerator
using the given settings.
pub fn settings(&self) -> &SchemaSettings
[src]
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);
pub fn schema_for_any(&self) -> Schema
[src]
Returns a Schema
that matches everything, such as the empty schema {}
.
The exact value returned depends on this generator's BoolSchemas
setting.
pub fn schema_for_none(&self) -> Schema
[src]
Returns a Schema
that matches nothing, such as the schema { "not":{} }
.
The exact value returned depends on this generator's BoolSchemas
setting.
pub fn subschema_for<T: ?Sized + JsonSchema>(&mut self) -> Schema
[src]
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.
pub fn definitions(&self) -> &Map<String, Schema>
[src]
Returns 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.
pub fn into_definitions(self) -> Map<String, Schema>
[src]
Consumes self
and returns 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.
pub fn root_schema_for<T: ?Sized + JsonSchema>(&mut self) -> RootSchema
[src]
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
pub fn into_root_schema_for<T: ?Sized + JsonSchema>(self) -> RootSchema
[src]
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 dereference<'a>(&'a self, schema: &Schema) -> Option<&'a Schema>
[src]
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());
Trait Implementations
impl Clone for SchemaGenerator
[src]
fn clone(&self) -> SchemaGenerator
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Default for SchemaGenerator
[src]
fn default() -> SchemaGenerator
[src]
impl Debug for SchemaGenerator
[src]
Auto Trait Implementations
impl Send for SchemaGenerator
impl Sync for SchemaGenerator
impl Unpin for SchemaGenerator
impl UnwindSafe for SchemaGenerator
impl RefUnwindSafe for SchemaGenerator
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,