Skip to main content

sanitize_identifier

Function sanitize_identifier 

Source
pub fn sanitize_identifier(name: &str, language: TargetLanguage) -> String
Expand description

Sanitize an identifier to be valid in the target language.

This function:

  1. Replaces invalid characters with underscores
  2. Ensures the identifier doesn’t start with a digit
  3. Handles reserved keywords by prefixing with the language-specific prefix
  4. Cleans up multiple consecutive underscores
  5. Removes leading/trailing underscores (except when added as keyword prefix)

§Arguments

  • name - The identifier to sanitize
  • language - 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"
);