async_graphql/validators/
mod.rs1mod chars_max_length;
2mod chars_min_length;
3mod max_items;
4mod max_length;
5mod maximum;
6mod min_items;
7mod min_length;
8mod minimum;
9mod multiple_of;
10mod regex;
11
12pub use chars_max_length::chars_max_length;
13pub use chars_min_length::chars_min_length;
14pub use max_items::max_items;
15pub use max_length::max_length;
16pub use maximum::maximum;
17pub use min_items::min_items;
18pub use min_length::min_length;
19pub use minimum::minimum;
20pub use multiple_of::multiple_of;
21
22pub use self::regex::regex;
23use crate::{InputType, InputValueError};
24
25pub trait CustomValidator<T: InputType> {
27 fn check(&self, value: &T) -> Result<(), InputValueError<T>>;
29}
30
31impl<T, F, E> CustomValidator<T> for F
32where
33 T: InputType,
34 E: Into<InputValueError<T>>,
35 F: Fn(&T) -> Result<(), E>,
36{
37 #[inline]
38 fn check(&self, value: &T) -> Result<(), InputValueError<T>> {
39 (self)(value).map_err(Into::into)
40 }
41}