Skip to content

Commit 17c4d7e

Browse files
authored
Merge pull request #75 from yassun7010/replace_custom_validation
Replace custom validation.
2 parents acbd20c + f950e70 commit 17c4d7e

33 files changed

+588
-212
lines changed

serde_valid/README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ Serde Valid support standard validation based JSON Schema.
6565

6666
In addition, [serde_valid::utils][module@crate::utils] provides a type of validation not described in the JSON schema specification.
6767

68-
| Type | Serde Valid (validate derive) | Serde Valid (validation function) |
69-
| :------------------------------------------------------------------: | :-------------------------------------------------------- | :----------------------------------------------------------------------- |
70-
| [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom(duration_maximum(SECOND)))]` | [duration_maximum][`crate::utils::duration_maximum`] |
71-
| [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom(duration_minimum(ZERO)))]` | [duration_minimum][`crate::utils::duration_minimum`] |
72-
| [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom(duration_exclusive_maximum(SECOND)))]` | [duration_exclusive_maximum][`crate::utils::duration_exclusive_maximum`] |
73-
| [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom(duration_exclusive_minimum(ZERO)))]` | [duration_exclusive_minimum][`crate::utils::duration_exclusive_minimum`] |
68+
| Type | Serde Valid (validate derive) | Serde Valid (validation function) |
69+
| :------------------------------------------------------------------: | :--------------------------------------------------------- | :----------------------------------------------------------------------- |
70+
| [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom = duration_maximum(SECOND))]` | [duration_maximum][`crate::utils::duration_maximum`] |
71+
| [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom = duration_minimum(ZERO))]` | [duration_minimum][`crate::utils::duration_minimum`] |
72+
| [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom = duration_exclusive_maximum(SECOND))]` | [duration_exclusive_maximum][`crate::utils::duration_exclusive_maximum`] |
73+
| [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom = duration_exclusive_minimum(ZERO))]` | [duration_exclusive_minimum][`crate::utils::duration_exclusive_minimum`] |
7474

7575
## Complete Constructor (Deserialization)
7676

@@ -202,7 +202,7 @@ assert_eq!(
202202

203203
## Custom Validation
204204
### Single Error Validation
205-
You can use your custom validation using by `#[validate(custom)]`.
205+
You can use your custom validation using by `#[validate(custom = ...)]`.
206206

207207
```rust
208208
use serde_valid::Validate;
@@ -213,7 +213,7 @@ fn user_validation(_val: &i32) -> Result<(), serde_valid::validation::Error> {
213213

214214
#[derive(Validate)]
215215
struct Data {
216-
#[validate(custom(user_validation))]
216+
#[validate(custom = user_validation)]
217217
val: i32,
218218
}
219219

@@ -233,7 +233,7 @@ fn user_validation(_val: &i32, param1: bool) -> Result<(), serde_valid::validati
233233

234234
#[derive(Validate)]
235235
struct Data {
236-
#[validate(custom(|v| user_validation(v, true)))]
236+
#[validate(custom = |v| user_validation(v, true))]
237237
val: i32,
238238
}
239239

@@ -253,8 +253,8 @@ use serde_valid::utils::{duration_maximum, duration_minimum};
253253

254254
#[derive(Validate)]
255255
struct Data {
256-
#[validate(custom(duration_maximum(std::time::Duration::from_micros(5))))]
257-
#[validate(custom(duration_minimum(std::time::Duration::from_micros(0))))]
256+
#[validate(custom = duration_maximum(std::time::Duration::from_micros(5)))]
257+
#[validate(custom = duration_minimum(std::time::Duration::from_micros(0)))]
258258
val1: std::time::Duration,
259259
}
260260

@@ -266,7 +266,7 @@ assert!(s.validate().is_ok());
266266
```
267267

268268
### Multi Errors Validation
269-
If you want to return multiple errors in the use custom validation method, you can use `#[validate(custom)]` same as single error.
269+
If you want to return multiple errors in the use custom validation method, you can use `#[validate(custom = ...)]` same as single error.
270270

271271
```rust
272272
use serde_valid::Validate;
@@ -278,7 +278,7 @@ fn user_validation(_val: &i32) -> Result<(), Vec<serde_valid::validation::Error>
278278

279279
#[derive(Validate)]
280280
struct Data {
281-
#[validate(custom(user_validation))]
281+
#[validate(custom = user_validation)]
282282
val: i32,
283283
}
284284

@@ -288,7 +288,7 @@ assert!(s.validate().is_ok());
288288
```
289289

290290
### Multi Fields Validation
291-
Now, you can use `#[validate(custom)]` for multi fields validation.
291+
Now, you can use `#[validate(custom = ...)]` for multi fields validation.
292292

293293
```rust
294294
use serde_json::json;
@@ -299,7 +299,7 @@ fn sample_validation(val1: i32, val2: &str) -> Result<(), serde_valid::validatio
299299
}
300300

301301
#[derive(Validate)]
302-
#[validate(custom(|s| sample_validation(s.val1, &s.val2)))]
302+
#[validate(custom = |s| sample_validation(s.val1, &s.val2))]
303303
struct Data {
304304
val1: i32,
305305
val2: String,

serde_valid/src/lib.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@
6565
//!
6666
//! In addition, [serde_valid::utils][module@crate::utils] provides a type of validation not described in the JSON schema specification.
6767
//!
68-
//! | Type | Serde Valid (validate derive) | Serde Valid (validation function) |
69-
//! | :------------------------------------------------------------------: | :-------------------------------------------------------- | :----------------------------------------------------------------------- |
70-
//! | [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom(duration_maximum(SECOND)))]` | [duration_maximum][`crate::utils::duration_maximum`] |
71-
//! | [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom(duration_minimum(ZERO)))]` | [duration_minimum][`crate::utils::duration_minimum`] |
72-
//! | [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom(duration_exclusive_maximum(SECOND)))]` | [duration_exclusive_maximum][`crate::utils::duration_exclusive_maximum`] |
73-
//! | [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom(duration_exclusive_minimum(ZERO)))]` | [duration_exclusive_minimum][`crate::utils::duration_exclusive_minimum`] |
68+
//! | Type | Serde Valid (validate derive) | Serde Valid (validation function) |
69+
//! | :------------------------------------------------------------------: | :--------------------------------------------------------- | :----------------------------------------------------------------------- |
70+
//! | [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom = duration_maximum(SECOND))]` | [duration_maximum][`crate::utils::duration_maximum`] |
71+
//! | [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom = duration_minimum(ZERO))]` | [duration_minimum][`crate::utils::duration_minimum`] |
72+
//! | [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom = duration_exclusive_maximum(SECOND))]` | [duration_exclusive_maximum][`crate::utils::duration_exclusive_maximum`] |
73+
//! | [Duration](https://doc.rust-lang.org/core/time/struct.Duration.html) | `#[validate(custom = duration_exclusive_minimum(ZERO))]` | [duration_exclusive_minimum][`crate::utils::duration_exclusive_minimum`] |
7474
//!
7575
//! ## Complete Constructor (Deserialization)
7676
//!
@@ -212,7 +212,7 @@
212212
//!
213213
//! ## Custom Validation
214214
//! ### Single Error Validation
215-
//! You can use your custom validation using by `#[validate(custom)]`.
215+
//! You can use your custom validation using by `#[validate(custom = ...)]`.
216216
//!
217217
//! ```rust
218218
//! use serde_valid::Validate;
@@ -223,7 +223,7 @@
223223
//!
224224
//! #[derive(Validate)]
225225
//! struct Data {
226-
//! #[validate(custom(user_validation))]
226+
//! #[validate(custom = user_validation)]
227227
//! val: i32,
228228
//! }
229229
//!
@@ -243,7 +243,7 @@
243243
//!
244244
//! #[derive(Validate)]
245245
//! struct Data {
246-
//! #[validate(custom(|v| user_validation(v, true)))]
246+
//! #[validate(custom = |v| user_validation(v, true))]
247247
//! val: i32,
248248
//! }
249249
//!
@@ -263,8 +263,8 @@
263263
//!
264264
//! #[derive(Validate)]
265265
//! struct Data {
266-
//! #[validate(custom(duration_maximum(std::time::Duration::from_micros(5))))]
267-
//! #[validate(custom(duration_minimum(std::time::Duration::from_micros(0))))]
266+
//! #[validate(custom = duration_maximum(std::time::Duration::from_micros(5)))]
267+
//! #[validate(custom = duration_minimum(std::time::Duration::from_micros(0)))]
268268
//! val1: std::time::Duration,
269269
//! }
270270
//!
@@ -276,7 +276,7 @@
276276
//! ```
277277
//!
278278
//! ### Multi Errors Validation
279-
//! If you want to return multiple errors in the use custom validation method, you can use `#[validate(custom)]` same as single error.
279+
//! If you want to return multiple errors in the use custom validation method, you can use `#[validate(custom = ...)]` same as single error.
280280
//!
281281
//! ```rust
282282
//! use serde_valid::Validate;
@@ -288,7 +288,7 @@
288288
//!
289289
//! #[derive(Validate)]
290290
//! struct Data {
291-
//! #[validate(custom(user_validation))]
291+
//! #[validate(custom = user_validation)]
292292
//! val: i32,
293293
//! }
294294
//!
@@ -298,7 +298,7 @@
298298
//! ```
299299
//!
300300
//! ### Multi Fields Validation
301-
//! Now, you can use `#[validate(custom)]` for multi fields validation.
301+
//! Now, you can use `#[validate(custom = ...)]` for multi fields validation.
302302
//!
303303
//! ```rust
304304
//! use serde_json::json;
@@ -309,7 +309,7 @@
309309
//! }
310310
//!
311311
//! #[derive(Validate)]
312-
//! #[validate(custom(|s| sample_validation(s.val1, &s.val2)))]
312+
//! #[validate(custom = |s| sample_validation(s.val1, &s.val2))]
313313
//! struct Data {
314314
//! val1: i32,
315315
//! val2: String,

serde_valid/src/utils/duration.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use std::time::Duration;
1212
///
1313
/// #[derive(Validate)]
1414
/// struct TestStruct {
15-
/// #[validate(custom(duration_maximum(Duration::from_micros(5))))]
15+
/// #[validate(custom = duration_maximum(Duration::from_micros(5)))]
1616
/// val: Duration,
1717
/// }
1818
///
@@ -49,7 +49,7 @@ pub fn duration_maximum(
4949
///
5050
/// #[derive(Validate)]
5151
/// struct TestStruct {
52-
/// #[validate(custom(duration_minimum(Duration::from_micros(5))))]
52+
/// #[validate(custom = duration_minimum(Duration::from_micros(5)))]
5353
/// val: Duration,
5454
/// }
5555
///
@@ -86,7 +86,7 @@ pub fn duration_minimum(
8686
///
8787
/// #[derive(Validate)]
8888
/// struct TestStruct {
89-
/// #[validate(custom(duration_exclusive_maximum(Duration::from_micros(5))))]
89+
/// #[validate(custom = duration_exclusive_maximum(Duration::from_micros(5)))]
9090
/// val: Duration,
9191
/// }
9292
///
@@ -123,7 +123,7 @@ pub fn duration_exclusive_maximum(
123123
///
124124
/// #[derive(Validate)]
125125
/// struct TestStruct {
126-
/// #[validate(custom(duration_exclusive_minimum(Duration::from_micros(5))))]
126+
/// #[validate(custom = duration_exclusive_minimum(Duration::from_micros(5)))]
127127
/// val: Duration,
128128
/// }
129129
///

serde_valid/src/validation/custom.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/// This function is used to avoid [rustc(E0282)](https://doc.rust-lang.org/error_codes/E0282.html) error in `#[validate(custom)]` validator on the struct.
1+
/// This function is used to avoid [rustc(E0282)](https://doc.rust-lang.org/error_codes/E0282.html) error in `#[validate(custom = ...)]` validator on the struct.
22
#[inline]
33
pub fn wrap_closure_validation<T: ?Sized, M: IntoVecErrors>(
44
data: &T,

serde_valid/tests/array_test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ fn items_err_message() {
1818
}
1919

2020
#[derive(Validate)]
21-
#[validate(custom(|s| rule_sample(s.val)))]
21+
#[validate(custom = |s| rule_sample(s.val))]
2222
struct TestChildStruct {
2323
#[validate(minimum = 1)]
2424
#[validate(maximum = 10)]

serde_valid/tests/complex_test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ fn sample_rule(_val: i32) -> Result<(), serde_valid::validation::Error> {
55
}
66

77
#[derive(Debug, Validate)]
8-
#[validate(custom(|s| sample_rule(s.int_value)))]
8+
#[validate(custom = |s| sample_rule(s.int_value))]
99
struct TestStruct<'a> {
1010
// Generic validator
1111
#[validate(enumerate = [5, 10, 15])]

serde_valid/tests/custom_duration_test.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use serde_valid::Validate;
88
fn duration_maximum_is_ok() {
99
#[derive(Validate)]
1010
struct TestStruct {
11-
#[validate(custom(duration_maximum(Duration::from_micros(5))))]
11+
#[validate(custom = duration_maximum(Duration::from_micros(5)))]
1212
val: Duration,
1313
}
1414

@@ -23,7 +23,7 @@ fn duration_maximum_is_ok() {
2323
fn duration_minimum_is_ok() {
2424
#[derive(Validate)]
2525
struct TestStruct {
26-
#[validate(custom(duration_minimum(Duration::from_micros(5))))]
26+
#[validate(custom = duration_minimum(Duration::from_micros(5)))]
2727
val: Duration,
2828
}
2929

@@ -38,7 +38,7 @@ fn duration_minimum_is_ok() {
3838
fn duration_maximum_is_err() {
3939
#[derive(Validate)]
4040
struct TestStruct {
41-
#[validate(custom(duration_maximum(Duration::from_micros(5))))]
41+
#[validate(custom = duration_maximum(Duration::from_micros(5)))]
4242
val: Duration,
4343
}
4444

@@ -66,7 +66,7 @@ fn duration_maximum_is_err() {
6666
fn duration_minimum_is_err() {
6767
#[derive(Validate)]
6868
struct TestStruct {
69-
#[validate(custom(duration_minimum(Duration::from_micros(5))))]
69+
#[validate(custom = duration_minimum(Duration::from_micros(5)))]
7070
val: Duration,
7171
}
7272

0 commit comments

Comments
 (0)