#[non_exhaustive]pub struct Object {Show 29 fields
pub schema_type: SchemaType,
pub title: Option<String>,
pub format: Option<SchemaFormat>,
pub description: Option<String>,
pub default: Option<Value>,
pub enum_values: Option<Vec<Value>>,
pub required: Vec<String>,
pub properties: BTreeMap<String, RefOr<Schema>>,
pub additional_properties: Option<Box<AdditionalProperties<Schema>>>,
pub property_names: Option<Box<Schema>>,
pub deprecated: Option<Deprecated>,
pub example: Option<Value>,
pub examples: Vec<Value>,
pub write_only: Option<bool>,
pub read_only: Option<bool>,
pub xml: Option<Xml>,
pub multiple_of: Option<Number>,
pub maximum: Option<Number>,
pub minimum: Option<Number>,
pub exclusive_maximum: Option<Number>,
pub exclusive_minimum: Option<Number>,
pub max_length: Option<usize>,
pub min_length: Option<usize>,
pub pattern: Option<String>,
pub max_properties: Option<usize>,
pub min_properties: Option<usize>,
pub extensions: Option<Extensions>,
pub content_encoding: String,
pub content_media_type: String,
}
Expand description
Implements subset of OpenAPI Schema Object which allows
adding other Schema
s as properties to this Schema
.
This is a generic OpenAPI schema object which can used to present object
, field
or an enum
.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.schema_type: SchemaType
Type of Object
e.g. Type::Object
for object
and Type::String
for
string
types.
title: Option<String>
Changes the Object
title.
format: Option<SchemaFormat>
Additional format for detailing the schema type.
description: Option<String>
Description of the Object
. Markdown syntax is supported.
default: Option<Value>
Default value which is provided when user has not provided the input in Swagger UI.
enum_values: Option<Vec<Value>>
Enum variants of fields that can be represented as unit
type enums
.
required: Vec<String>
Vector of required field names.
properties: BTreeMap<String, RefOr<Schema>>
Map of fields with their Schema
types.
With preserve_order feature flag indexmap::IndexMap
will be used as
properties map backing implementation to retain property order of ToSchema
.
By default BTreeMap
will be used.
additional_properties: Option<Box<AdditionalProperties<Schema>>>
Additional Schema
for non specified fields (Useful for typed maps).
property_names: Option<Box<Schema>>
Additional Schema
to describe property names of an object such as a map. See more
details https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-01#name-propertynames
deprecated: Option<Deprecated>
Changes the Object
deprecated status.
example: Option<Value>
Example shown in UI of the value for richer documentation.
Deprecated since 3.0.x. Prefer Object::examples
instead
examples: Vec<Value>
Examples shown in UI of the value for richer documentation.
write_only: Option<bool>
Write only property will be only sent in write requests like POST, PUT.
read_only: Option<bool>
Read only property will be only sent in read requests like GET.
xml: Option<Xml>
§multiple_of: Option<Number>
Must be a number strictly greater than 0
. Numeric value is considered valid if value
divided by the multiple_of
value results an integer.
maximum: Option<Number>
Specify inclusive upper limit for the Object
’s value. Number is considered valid if
it is equal or less than the maximum
.
minimum: Option<Number>
Specify inclusive lower limit for the Object
’s value. Number value is considered
valid if it is equal or greater than the minimum
.
exclusive_maximum: Option<Number>
Specify exclusive upper limit for the Object
’s value. Number value is considered
valid if it is strictly less than exclusive_maximum
.
exclusive_minimum: Option<Number>
Specify exclusive lower limit for the Object
’s value. Number value is considered
valid if it is strictly above the exclusive_minimum
.
max_length: Option<usize>
Specify maximum length for string
values. max_length
cannot be a negative integer
value. Value is considered valid if content length is equal or less than the max_length
.
min_length: Option<usize>
Specify minimum length for string
values. min_length
cannot be a negative integer
value. Setting this to 0
has the same effect as omitting this field. Value is
considered valid if content length is equal or more than the min_length
.
pattern: Option<String>
Define a valid ECMA-262
dialect regular expression. The string
content is
considered valid if the pattern
matches the value successfully.
max_properties: Option<usize>
Specify inclusive maximum amount of properties an Object
can hold.
min_properties: Option<usize>
Specify inclusive minimum amount of properties an Object
can hold. Setting this to
0
will have same effect as omitting the attribute.
extensions: Option<Extensions>
Optional extensions x-something
.
content_encoding: String
The content_encoding
keyword specifies the encoding used to store the contents, as specified in
RFC 2054, part 6.1 and [RFC 4648](RFC 2054, part 6.1).
Typically this is either unset for string
content types which then uses the content
encoding of the underlying JSON document. If the content is in binary
format such as an image or an audio
set it to base64
to encode it as Base64
.
See more details at https://json-schema.org/understanding-json-schema/reference/non_json_data#contentencoding
content_media_type: String
The content_media_type
keyword specifies the MIME type of the contents of a string,
as described in RFC 2046.
See more details at https://json-schema.org/understanding-json-schema/reference/non_json_data#contentmediatype
Implementations§
Source§impl Object
impl Object
Sourcepub fn builder() -> ObjectBuilder
pub fn builder() -> ObjectBuilder
Construct a new ObjectBuilder.
This is effectively same as calling ObjectBuilder::new
Source§impl Object
impl Object
Sourcepub fn new() -> Self
pub fn new() -> Self
Initialize a new Object
with default SchemaType
. This effectively same as calling
Object::with_type(SchemaType::Object)
.
Sourcepub fn with_type<T: Into<SchemaType>>(schema_type: T) -> Self
pub fn with_type<T: Into<SchemaType>>(schema_type: T) -> Self
Initialize new Object
with given SchemaType
.
Create std::string
object type which can be used to define string
field of an object.
let object = Object::with_type(Type::String);