pub struct BodySchema {
pub type: Option<String>,
pub required: Vec<String>,
pub properties: BTreeMap<String, BodySchema>,
pub additional_properties: Option<Box<AdditionalProperties>>,
pub items: Option<Box<BodySchema>>,
pub enum: Vec<Value>,
pub minimum: Option<f64>,
pub maximum: Option<f64>,
pub min_length: Option<u64>,
pub max_length: Option<u64>,
}Expand description
A minimal JSON-Schema subset (DW-047) for request-body validation.
Supports the keywords sufficient for typical OpenAPI-derived body
schemas: type, required, properties, items, enum,
minimum, maximum, minLength, maxLength, and
additionalProperties. Nested objects and arrays compose
recursively. Unknown keywords are IGNORED (forward compatibility
with richer specs) EXCEPT at the root RequestValidation.body_schema
where deny_unknown_fields on the surrounding config struct already
rejects typos in the wrapper; this struct itself is permissive so a
real-world schema carrying description, example, or $schema
does not fail to parse.
Fields§
§type: Option<String>The JSON type: object, array, string, number,
integer, boolean, or null.
required: Vec<String>For object: the required property names.
properties: BTreeMap<String, BodySchema>For object: named property schemas.
additional_properties: Option<Box<AdditionalProperties>>For object: true (default, allows extra properties), false
(rejects any property not in properties), or a schema every
extra property must satisfy.
items: Option<Box<BodySchema>>For array: the schema every element must satisfy.
enum: Vec<Value>An enum of allowed values (compared by JSON equality).
minimum: Option<f64>Inclusive numeric minimum (for number/integer).
maximum: Option<f64>Inclusive numeric maximum (for number/integer).
min_length: Option<u64>Minimum string length (for string).
max_length: Option<u64>Maximum string length (for string).
Trait Implementations§
Source§impl Clone for BodySchema
impl Clone for BodySchema
Source§fn clone(&self) -> BodySchema
fn clone(&self) -> BodySchema
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BodySchema
impl Debug for BodySchema
Source§impl<'de> Deserialize<'de> for BodySchema
impl<'de> Deserialize<'de> for BodySchema
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 JsonSchema for BodySchema
impl JsonSchema for BodySchema
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for BodySchema
impl PartialEq for BodySchema
Source§impl Serialize for BodySchema
impl Serialize for BodySchema
impl StructuralPartialEq for BodySchema
Auto Trait Implementations§
impl Freeze for BodySchema
impl RefUnwindSafe for BodySchema
impl Send for BodySchema
impl Sync for BodySchema
impl Unpin for BodySchema
impl UnwindSafe for BodySchema
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more