1use super::super::common::error::ValicoError;
2use serde::{Serialize, Serializer};
3use serde_json::{to_value, Value};
4
5#[derive(Debug)]
6#[allow(missing_copy_implementations)]
7pub struct WrongType {
8 pub path: String,
9 pub detail: String,
10}
11impl_err!(WrongType, "wrong_type", "Type of the value is wrong", +detail);
12impl_serialize!(WrongType);
13
14#[derive(Debug)]
15#[allow(missing_copy_implementations)]
16pub struct MultipleOf {
17 pub path: String,
18}
19impl_err!(MultipleOf, "multiple_of", "Wrong number of the value");
20impl_serialize!(MultipleOf);
21
22#[derive(Debug)]
23#[allow(missing_copy_implementations)]
24pub struct Maximum {
25 pub path: String,
26}
27impl_err!(Maximum, "maximum", "Maximum condition is not met");
28impl_serialize!(Maximum);
29
30#[derive(Debug)]
31#[allow(missing_copy_implementations)]
32pub struct Minimum {
33 pub path: String,
34}
35impl_err!(Minimum, "minimum", "Minimum condition is not met");
36impl_serialize!(Minimum);
37
38#[derive(Debug)]
39#[allow(missing_copy_implementations)]
40pub struct MaxLength {
41 pub path: String,
42}
43impl_err!(MaxLength, "max_length", "MaxLength condition is not met");
44impl_serialize!(MaxLength);
45
46#[derive(Debug)]
47#[allow(missing_copy_implementations)]
48pub struct MinLength {
49 pub path: String,
50}
51impl_err!(MinLength, "min_length", "MinLength condition is not met");
52impl_serialize!(MinLength);
53
54#[derive(Debug)]
55#[allow(missing_copy_implementations)]
56pub struct Pattern {
57 pub path: String,
58}
59impl_err!(Pattern, "pattern", "Pattern condition is not met");
60impl_serialize!(Pattern);
61
62#[derive(Debug)]
63#[allow(missing_copy_implementations)]
64pub struct MaxItems {
65 pub path: String,
66}
67impl_err!(MaxItems, "max_items", "MaxItems condition is not met");
68impl_serialize!(MaxItems);
69
70#[derive(Debug)]
71#[allow(missing_copy_implementations)]
72pub struct MinItems {
73 pub path: String,
74}
75impl_err!(MinItems, "min_items", "MinItems condition is not met");
76impl_serialize!(MinItems);
77
78#[derive(Debug)]
79#[allow(missing_copy_implementations)]
80pub struct UniqueItems {
81 pub path: String,
82}
83impl_err!(
84 UniqueItems,
85 "unique_items",
86 "UniqueItems condition is not met"
87);
88impl_serialize!(UniqueItems);
89
90#[derive(Debug)]
91#[allow(missing_copy_implementations)]
92pub struct Items {
93 pub path: String,
94 pub detail: String,
95}
96impl_err!(Items, "items", "Items condition is not met", +detail);
97impl_serialize!(Items);
98
99#[derive(Debug)]
100#[allow(missing_copy_implementations)]
101pub struct MaxProperties {
102 pub path: String,
103}
104impl_err!(
105 MaxProperties,
106 "max_properties",
107 "MaxProperties condition is not met"
108);
109impl_serialize!(MaxProperties);
110
111#[derive(Debug)]
112#[allow(missing_copy_implementations)]
113pub struct MinProperties {
114 pub path: String,
115}
116impl_err!(
117 MinProperties,
118 "min_properties",
119 "MinProperties condition is not met"
120);
121impl_serialize!(MinProperties);
122
123#[derive(Debug)]
124#[allow(missing_copy_implementations)]
125pub struct Required {
126 pub path: String,
127}
128impl_err!(Required, "required", "This property is required");
129impl_serialize!(Required);
130
131#[derive(Debug)]
132#[allow(missing_copy_implementations)]
133pub struct Properties {
134 pub path: String,
135 pub detail: String,
136}
137impl_err!(Properties, "properties", "Property conditions are not met", +detail);
138impl_serialize!(Properties);
139
140#[derive(Debug)]
141#[allow(missing_copy_implementations)]
142pub struct Enum {
143 pub path: String,
144}
145impl_err!(Enum, "enum", "Enum conditions are not met");
146impl_serialize!(Enum);
147
148#[derive(Debug)]
149#[allow(missing_copy_implementations)]
150pub struct AnyOf {
151 pub path: String,
152 pub states: Vec<super::validators::ValidationState>,
153}
154impl_err!(AnyOf, "any_of", "AnyOf conditions are not met");
155impl_serialize!(
156 AnyOf,
157 |err: &AnyOf, map: &mut ::serde_json::Map<String, Value>| map
158 .insert("states".to_string(), to_value(&err.states).unwrap())
159);
160
161#[derive(Debug)]
162#[allow(missing_copy_implementations)]
163pub struct OneOf {
164 pub path: String,
165 pub states: Vec<super::validators::ValidationState>,
166}
167impl_err!(OneOf, "one_of", "OneOf conditions are not met");
168impl_serialize!(
169 OneOf,
170 |err: &OneOf, map: &mut ::serde_json::Map<String, Value>| map
171 .insert("states".to_string(), to_value(&err.states).unwrap())
172);
173
174#[derive(Debug)]
175#[allow(missing_copy_implementations)]
176pub struct Const {
177 pub path: String,
178}
179impl_err!(Const, "const", "Const condition is not met");
180impl_serialize!(Const);
181
182#[derive(Debug)]
183#[allow(missing_copy_implementations)]
184pub struct Contains {
185 pub path: String,
186}
187impl_err!(Contains, "contains", "Contains condition is not met");
188impl_serialize!(Contains);
189
190#[derive(Debug)]
191#[allow(missing_copy_implementations)]
192pub struct ContainsMinMax {
193 pub path: String,
194}
195impl_err!(
196 ContainsMinMax,
197 "min_contains/max_contains",
198 "Contains minimum/maximum is not met"
199);
200impl_serialize!(ContainsMinMax);
201
202#[derive(Debug)]
203#[allow(missing_copy_implementations)]
204pub struct Not {
205 pub path: String,
206}
207impl_err!(Not, "not", "Not condition is not met");
208impl_serialize!(Not);
209
210#[derive(Debug)]
211#[allow(missing_copy_implementations)]
212pub struct DivergentDefaults {
213 pub path: String,
214}
215impl_err!(
216 DivergentDefaults,
217 "default",
218 "Application of defaults did not converge"
219);
220impl_serialize!(DivergentDefaults);
221
222#[derive(Debug)]
223#[allow(missing_copy_implementations)]
224pub struct Format {
225 pub path: String,
226 pub detail: String,
227}
228impl_err!(Format, "format", "Format is wrong", +detail);
229impl_serialize!(Format);
230
231#[derive(Debug)]
232#[allow(missing_copy_implementations)]
233pub struct Unevaluated {
234 pub path: String,
235 pub detail: String,
236}
237impl_err!(Unevaluated, "unevaluated", "Unevaluated condition is not met", +detail);
238impl_serialize!(Unevaluated);