pub struct SchemaObject {
pub metadata: Option<Box<Metadata>>,
pub instance_type: Option<SingleOrVec<InstanceType>>,
pub format: Option<String>,
pub enum_values: Option<Vec<Value>>,
pub const_value: Option<Value>,
pub subschemas: Option<Box<SubschemaValidation>>,
pub number: Option<Box<NumberValidation>>,
pub string: Option<Box<StringValidation>>,
pub array: Option<Box<ArrayValidation>>,
pub object: Option<Box<ObjectValidation>>,
pub reference: Option<String>,
pub extensions: Map<String, Value>,
}
Expand description
A JSON Schema object.
Fields§
§metadata: Option<Box<Metadata>>
Properties which annotate the SchemaObject
which typically have no effect when an object is being validated against the schema.
instance_type: Option<SingleOrVec<InstanceType>>
The type
keyword.
See JSON Schema Validation 6.1.1. “type” and JSON Schema 4.2.1. Instance Data Model.
format: Option<String>
The format
keyword.
See JSON Schema Validation 7. A Vocabulary for Semantic Content With “format”.
enum_values: Option<Vec<Value>>
The enum
keyword.
const_value: Option<Value>
The const
keyword.
subschemas: Option<Box<SubschemaValidation>>
Properties of the SchemaObject
which define validation assertions in terms of other schemas.
number: Option<Box<NumberValidation>>
Properties of the SchemaObject
which define validation assertions for numbers.
string: Option<Box<StringValidation>>
Properties of the SchemaObject
which define validation assertions for strings.
array: Option<Box<ArrayValidation>>
Properties of the SchemaObject
which define validation assertions for arrays.
object: Option<Box<ObjectValidation>>
Properties of the SchemaObject
which define validation assertions for objects.
reference: Option<String>
The $ref
keyword.
extensions: Map<String, Value>
Arbitrary extra properties which are not part of the JSON Schema specification, or which schemars
does not support.
Implementations§
source§impl SchemaObject
impl SchemaObject
sourcepub fn new_ref(reference: String) -> Self
pub fn new_ref(reference: String) -> Self
Creates a new $ref
schema.
The given reference string should be a URI reference. This will usually be a JSON Pointer in URI Fragment representation.
sourcepub fn is_ref(&self) -> bool
pub fn is_ref(&self) -> bool
Returns true
if self
is a $ref
schema.
If self
has Some
reference
set, this returns true
.
Otherwise, returns false
.
sourcepub fn has_type(&self, ty: InstanceType) -> bool
pub fn has_type(&self, ty: InstanceType) -> bool
Returns true
if self
accepts values of the given type, according to the instance_type
field.
This is a basic check that always returns true
if no instance_type
is specified on the schema,
and does not check any subschemas. Because of this, both {}
and {"not": {}}
accept any type according
to this method.
sourcepub fn metadata(&mut self) -> &mut Metadata
pub fn metadata(&mut self) -> &mut Metadata
Returns a mutable reference to this schema’s Metadata
, creating it if it was None
.
sourcepub fn subschemas(&mut self) -> &mut SubschemaValidation
pub fn subschemas(&mut self) -> &mut SubschemaValidation
Returns a mutable reference to this schema’s SubschemaValidation
, creating it if it was None
.
sourcepub fn number(&mut self) -> &mut NumberValidation
pub fn number(&mut self) -> &mut NumberValidation
Returns a mutable reference to this schema’s NumberValidation
, creating it if it was None
.
sourcepub fn string(&mut self) -> &mut StringValidation
pub fn string(&mut self) -> &mut StringValidation
Returns a mutable reference to this schema’s StringValidation
, creating it if it was None
.
sourcepub fn array(&mut self) -> &mut ArrayValidation
pub fn array(&mut self) -> &mut ArrayValidation
Returns a mutable reference to this schema’s ArrayValidation
, creating it if it was None
.
sourcepub fn object(&mut self) -> &mut ObjectValidation
pub fn object(&mut self) -> &mut ObjectValidation
Returns a mutable reference to this schema’s ObjectValidation
, creating it if it was None
.
Trait Implementations§
source§impl Clone for SchemaObject
impl Clone for SchemaObject
source§fn clone(&self) -> SchemaObject
fn clone(&self) -> SchemaObject
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for SchemaObject
impl Debug for SchemaObject
source§impl Default for SchemaObject
impl Default for SchemaObject
source§fn default() -> SchemaObject
fn default() -> SchemaObject
source§impl<'de> Deserialize<'de> for SchemaObjectwhere
SchemaObject: Default,
impl<'de> Deserialize<'de> for SchemaObjectwhere
SchemaObject: Default,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<Schema> for SchemaObject
impl From<Schema> for SchemaObject
source§impl From<SchemaObject> for Schema
impl From<SchemaObject> for Schema
source§fn from(o: SchemaObject) -> Self
fn from(o: SchemaObject) -> Self
source§impl PartialEq for SchemaObject
impl PartialEq for SchemaObject
source§impl Serialize for SchemaObject
impl Serialize for SchemaObject
impl StructuralPartialEq for SchemaObject
Auto Trait Implementations§
impl Freeze for SchemaObject
impl RefUnwindSafe for SchemaObject
impl Send for SchemaObject
impl Sync for SchemaObject
impl Unpin for SchemaObject
impl UnwindSafe for SchemaObject
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)