pub fn sanitize_identifier(name: &str, language: TargetLanguage) -> StringExpand description
Sanitize an identifier to be valid in the target language.
This function:
- Replaces invalid characters with underscores
- Ensures the identifier doesn’t start with a digit
- Handles reserved keywords by prefixing with the language-specific prefix
- Cleans up multiple consecutive underscores
- Removes leading/trailing underscores (except when added as keyword prefix)
§Arguments
name- The identifier to sanitizelanguage- The target programming language
§Returns
A sanitized identifier that is valid in the target language.
§Examples
use spikard_cli::codegen::common::identifier_sanitization::{sanitize_identifier, TargetLanguage};
// Reserved keyword gets prefixed
assert_eq!(
sanitize_identifier("def", TargetLanguage::Python),
"_def"
);
// Invalid characters replaced
assert_eq!(
sanitize_identifier("hello-world", TargetLanguage::Python),
"hello_world"
);
// Leading digits prefixed
assert_eq!(
sanitize_identifier("42answer", TargetLanguage::TypeScript),
"_42answer"
);