pub fn validate_project_name(name: &str) -> Result<String>Expand description
Validate a project name for use in file paths
Project names must:
- Only contain alphanumeric characters, hyphens, and underscores
- Not start or end with a hyphen or underscore
- Be between 1 and 64 characters long
- Not contain any path separators or special characters
- Not be a reserved system name (Windows: CON, PRN, AUX, etc.)
§Arguments
name- The project name to validate
§Returns
Returns the validated name if validation succeeds, or an error if validation fails.
§Examples
use path_security::validate_project_name;
// Valid names
let name = validate_project_name("my-project")?;
let name = validate_project_name("project_123")?;
// Invalid names
assert!(validate_project_name("../etc").is_err());
assert!(validate_project_name("-invalid").is_err());
assert!(validate_project_name("CON").is_err()); // Windows reserved