Struct fog_pack::validator::ArrayValidator [−][src]
pub struct ArrayValidator {Show 14 fields
pub comment: String,
pub contains: Vec<Validator>,
pub items: Box<Validator>,
pub prefix: Vec<Validator>,
pub max_len: u32,
pub min_len: u32,
pub in_list: Vec<Vec<Value>>,
pub nin_list: Vec<Vec<Value>>,
pub unique: bool,
pub query: bool,
pub array: bool,
pub contains_ok: bool,
pub unique_ok: bool,
pub size: bool,
}Expand description
Validator for arrays.
This validator type will only pass array values. Validation passes if:
- If the
inlist is not empty, the array must be among the arrays in the list. - The array must not be among the arrays in the
ninlist. - The arrays’s length is less than or equal to the value in
max_len. - The arrays’s length is greater than or equal to the value in
min_len. - If
uniqueis true, the array items are all unique. - For each validator in the
containslist, at least one item in the array passes. - Each item in the array is checked with a validator at the same index in the
prefixarray. All validators must pass. If there is no validator at the same index, the validator initemsmust pass. If a validator is not used, it passes automatially.
Defaults
Fields that aren’t specified for the validator use their defaults instead. The defaults for each field are:
- comment: “”
- contains: empty
- items: Validator::Any
- prefix: empty
- max_len: u32::MAX
- min_len: u32::MIN
- in_list: empty
- nin_list: empty
- unique: false
- query: false
- array: false
- contains_ok: false
- unique_ok: false
- size: false
Query Checking
Queries for arrays are only allowed to use non-default values for each field if the corresponding query permission is set in the schema’s validator:
- query:
inandninlists - array:
prefixanditems - contains_ok:
contains - unique_ok:
unique - size:
max_lenandmin_len
In addition, sub-validators in the query are matched against the schema’s sub-validators:
- Each validator in
containsis checked against all of the schema’sprefixvalidators, as well as itsitemsvalidator. - The
itemsvalidator is checked against the schema’s `items’ validator - The
prefixvalidators are checked against the schema’sprefixvalidators. Unmatched query validators are checked against the schema’sitemsvalidator.
Fields
comment: StringAn optional comment explaining the validator.
contains: Vec<Validator>For each validator in this array, at least one item in the array must pass the validator.
items: Box<Validator>A validator that each item in the array must pass, unless it is instead checked by
prefix.
prefix: Vec<Validator>An array of validators, which are matched up against the items in the array. Unmatched
validators automatically pass, while unmatched items are checked against the items
Validator.
max_len: u32The maximum allowed number of items in the array.
min_len: u32The minimum allowed number of items in the array.
in_list: Vec<Vec<Value>>A vector of specific allowed values, stored under the in field. If empty, this vector is not checked against.
nin_list: Vec<Vec<Value>>A vector of specific unallowed values, stored under the nin field.
unique: boolIf set, all items in the array must be unique.
query: boolIf true, queries against matching spots may have values in the in or nin lists.
array: boolIf true, queries against matching spots may use items and prefix.
contains_ok: boolIf true, queries against matching spots may use contains.
unique_ok: boolIf true, queries against matching spots may use unique.
size: boolIf true, queries against matching spots may use max_len and min_len.
Implementations
Extend the contains list with another validator
Extend the prefix list with another validator
Set whether or not queries can use the in and nin lists.
Set whether or not queries can use the items and prefix values.
Set whether or not queries can use the contains value.
Set whether or not queries can use the unique setting.
Set whether or not queries can use the max_len and min_len values.
Trait Implementations
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>,
Deserialize this value from the given Serde deserializer. Read more
This method tests for self and other values to be equal, and is used
by ==. Read more
This method tests for !=.
Auto Trait Implementations
impl RefUnwindSafe for ArrayValidator
impl Send for ArrayValidator
impl Sync for ArrayValidator
impl Unpin for ArrayValidator
impl UnwindSafe for ArrayValidator
Blanket Implementations
Mutably borrows from an owned value. Read more
type Output = T
type Output = T
Should always be Self