soroban_cli/config/
utils.rs1#[derive(thiserror::Error, Debug)]
2pub enum Error {
3 #[error("Invalid name: {0}\n only alphanumeric characters, underscores (_), and hyphens (-) are allowed.")]
4 InvalidNameCharacters(String),
5 #[error("Invalid name: {0}\n names cannot exceed 250 characters or be empty")]
6 InvalidNameLength(String),
7}
8
9pub fn allowed_char(c: char) -> bool {
10 c.is_ascii_alphanumeric() || c == '_' || c == '-'
11}
12
13pub fn validate_name(s: &str) -> Result<(), Error> {
14 if s.is_empty() || s.len() > 250 {
15 return Err(Error::InvalidNameLength(s.to_string()));
16 }
17 if !s.chars().all(allowed_char) {
18 return Err(Error::InvalidNameCharacters(s.to_string()));
19 }
20 Ok(())
21}