valico/json_schema/
errors.rs

1use std::error::{Error};
2use super::super::common::error::ValicoError;
3use serde_json::{Value, to_value};
4use serde::{Serialize, Serializer};
5
6#[derive(Debug)]
7#[allow(missing_copy_implementations)]
8pub struct WrongType {
9    pub path: String,
10    pub detail: String
11}
12impl_err!(WrongType, "wrong_type", "Type of the value is wrong", +detail);
13impl_serialize!(WrongType);
14
15#[derive(Debug)]
16#[allow(missing_copy_implementations)]
17pub struct MultipleOf {
18    pub path: String
19}
20impl_err!(MultipleOf, "multiple_of", "Wrong number of the value");
21impl_serialize!(MultipleOf);
22
23#[derive(Debug)]
24#[allow(missing_copy_implementations)]
25pub struct Maximum {
26    pub path: String
27}
28impl_err!(Maximum, "maximum", "Maximum condition is not met");
29impl_serialize!(Maximum);
30
31#[derive(Debug)]
32#[allow(missing_copy_implementations)]
33pub struct Minimum {
34    pub path: String
35}
36impl_err!(Minimum, "minimum", "Minimum condition is not met");
37impl_serialize!(Minimum);
38
39#[derive(Debug)]
40#[allow(missing_copy_implementations)]
41pub struct MaxLength {
42    pub path: String
43}
44impl_err!(MaxLength, "max_length", "MaxLength condition is not met");
45impl_serialize!(MaxLength);
46
47#[derive(Debug)]
48#[allow(missing_copy_implementations)]
49pub struct MinLength {
50    pub path: String
51}
52impl_err!(MinLength, "min_length", "MinLength condition is not met");
53impl_serialize!(MinLength);
54
55#[derive(Debug)]
56#[allow(missing_copy_implementations)]
57pub struct Pattern {
58    pub path: String
59}
60impl_err!(Pattern, "pattern", "Pattern condition is not met");
61impl_serialize!(Pattern);
62
63#[derive(Debug)]
64#[allow(missing_copy_implementations)]
65pub struct MaxItems {
66    pub path: String
67}
68impl_err!(MaxItems, "max_items", "MaxItems condition is not met");
69impl_serialize!(MaxItems);
70
71#[derive(Debug)]
72#[allow(missing_copy_implementations)]
73pub struct MinItems {
74    pub path: String
75}
76impl_err!(MinItems, "min_items", "MinItems condition is not met");
77impl_serialize!(MinItems);
78
79#[derive(Debug)]
80#[allow(missing_copy_implementations)]
81pub struct UniqueItems {
82    pub path: String
83}
84impl_err!(UniqueItems, "unique_items", "UniqueItems condition is not met");
85impl_serialize!(UniqueItems);
86
87#[derive(Debug)]
88#[allow(missing_copy_implementations)]
89pub struct Items {
90    pub path: String,
91    pub detail: String
92}
93impl_err!(Items, "items", "Items condition is not met", +detail);
94impl_serialize!(Items);
95
96#[derive(Debug)]
97#[allow(missing_copy_implementations)]
98pub struct MaxProperties {
99    pub path: String
100}
101impl_err!(MaxProperties, "max_properties", "MaxProperties condition is not met");
102impl_serialize!(MaxProperties);
103
104#[derive(Debug)]
105#[allow(missing_copy_implementations)]
106pub struct MinProperties {
107    pub path: String
108}
109impl_err!(MinProperties, "min_properties", "MinProperties condition is not met");
110impl_serialize!(MinProperties);
111
112#[derive(Debug)]
113#[allow(missing_copy_implementations)]
114pub struct Required {
115    pub path: String
116}
117impl_err!(Required, "required", "This property is required");
118impl_serialize!(Required);
119
120#[derive(Debug)]
121#[allow(missing_copy_implementations)]
122pub struct Properties {
123    pub path: String,
124    pub detail: String
125}
126impl_err!(Properties, "properties", "Property conditions are not met", +detail);
127impl_serialize!(Properties);
128
129#[derive(Debug)]
130#[allow(missing_copy_implementations)]
131pub struct Enum {
132    pub path: String
133}
134impl_err!(Enum, "enum", "Enum conditions are not met");
135impl_serialize!(Enum);
136
137#[derive(Debug)]
138#[allow(missing_copy_implementations)]
139pub struct AnyOf {
140    pub path: String,
141    pub states: Vec<super::validators::ValidationState>
142}
143impl_err!(AnyOf, "any_of", "AnyOf conditions are not met");
144impl_serialize!(AnyOf, |err: &AnyOf, map: &mut ::serde_json::Map<String, Value>| {
145    map.insert("states".to_string(), to_value(&err.states).unwrap())
146});
147
148#[derive(Debug)]
149#[allow(missing_copy_implementations)]
150pub struct OneOf {
151    pub path: String,
152    pub states: Vec<super::validators::ValidationState>
153}
154impl_err!(OneOf, "one_of", "OneOf conditions are not met");
155impl_serialize!(OneOf, |err: &OneOf, map: &mut ::serde_json::Map<String, Value>| {
156    map.insert("states".to_string(), to_value(&err.states).unwrap())
157});
158
159#[derive(Debug)]
160#[allow(missing_copy_implementations)]
161pub struct Not {
162    pub path: String
163}
164impl_err!(Not, "not", "Not condition is not met");
165impl_serialize!(Not);
166
167#[derive(Debug)]
168#[allow(missing_copy_implementations)]
169pub struct Format {
170    pub path: String,
171    pub detail: String
172}
173impl_err!(Format, "format", "Format is wrong", +detail);
174impl_serialize!(Format);
175