forked from brl/citadel-tools
function to test for valid names of things
This commit is contained in:
parent
f5bf92f488
commit
e4665f3f5c
@ -12,6 +12,28 @@ use failure::ResultExt;
|
||||
|
||||
use crate::Result;
|
||||
|
||||
pub fn is_valid_name(name: &str, maxsize: usize) -> bool {
|
||||
name.len() <= maxsize &&
|
||||
// Also false on empty string
|
||||
is_first_char_alphabetic(name) &&
|
||||
name.chars().all(is_alphanum_or_dash)
|
||||
}
|
||||
|
||||
fn is_alphanum_or_dash(c: char) -> bool {
|
||||
is_ascii(c) && (c.is_alphanumeric() || c == '-')
|
||||
}
|
||||
|
||||
fn is_ascii(c: char) -> bool {
|
||||
c as u32 <= 0x7F
|
||||
}
|
||||
|
||||
pub fn is_first_char_alphabetic(s: &str) -> bool {
|
||||
if let Some(c) = s.chars().next() {
|
||||
return is_ascii(c) && c.is_alphabetic()
|
||||
}
|
||||
false
|
||||
}
|
||||
|
||||
fn search_path(filename: &str) -> Result<PathBuf> {
|
||||
let path_var = env::var("PATH")?;
|
||||
for mut path in env::split_paths(&path_var) {
|
||||
|
Loading…
Reference in New Issue
Block a user