sol_cerberus/utils/
strings.rs1use 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}