async_graphql/validators/
max_length.rs

1use crate::{InputType, InputValueError};
2
3pub fn max_length<T: AsRef<str> + InputType>(
4    value: &T,
5    len: usize,
6) -> Result<(), InputValueError<T>> {
7    if value.as_ref().len() <= len {
8        Ok(())
9    } else {
10        Err(format!(
11            "the string length is {}, must be less than or equal to {}",
12            value.as_ref().len(),
13            len
14        )
15        .into())
16    }
17}
18
19#[cfg(test)]
20mod tests {
21    use super::*;
22
23    #[test]
24    fn test_max_length() {
25        assert!(max_length(&"ab".to_string(), 3).is_ok());
26        assert!(max_length(&"abc".to_string(), 3).is_ok());
27        assert!(max_length(&"abcd".to_string(), 3).is_err());
28    }
29}