sol_cerberus/utils/
strings.rs

1use crate::Errors;
2use anchor_lang::prelude::*;
3
4pub fn validate_string_len(text: &String, min: usize, max: usize) -> Result<String> {
5    if text.as_bytes().len() < min {
6        return err!(Errors::StringTooShort);
7    }
8    if text.as_bytes().len() > max {
9        return err!(Errors::StringTooLong);
10    }
11    Ok(text.clone())
12}
13
14#[cfg(test)]
15mod tests {
16    use super::*;
17
18    #[test]
19    fn test_valid_rules() {
20        let mut text = "".to_string();
21        assert_eq!(validate_string_len(&text, 0, 5), Ok("".to_string()));
22        assert_eq!(
23            validate_string_len(&text, 1, 5),
24            err!(Errors::StringTooShort)
25        );
26        text = "ABC".to_string();
27        assert_eq!(
28            validate_string_len(&text, 1, 2),
29            err!(Errors::StringTooLong)
30        );
31    }
32}