Skip to main content

soroban_cli/config/
utils.rs

1#[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}