| Crates.io | lang-generator |
| lib.rs | lang-generator |
| version | 1.0.6 |
| created_at | 2025-12-29 01:34:59.604651+00 |
| updated_at | 2025-12-29 02:50:56.368974+00 |
| description | A procedural macro crate for generating language-related code in poly-translator |
| homepage | |
| repository | https://github.com/magicgis/PolyTranslator/tree/main/lang-generator |
| max_upload_size | |
| id | 2009785 |
| size | 158,158 |
A Rust procedural macro crate for generating language-related code in poly-translator.
lang-generator is a procedural macro that automatically generates:
Language enum from ISO 639 language dataLanguage enum containing all ISO 639 languagesAdd this to your Cargo.toml:
[dependencies]
lang-generator = "1.0.3"
Use the procedural macro in your code:
use lang_generator::generate_language;
#[generate_language]
pub struct LanguageSupport;
fn main() {
// Use the generated Language enum
let lang = Language::English;
// Convert from language code
let result = Language::from_en("en");
println!("{:?}", result);
// Convert to language code
let code = Language::English.to_en();
println!("{}", code);
}
The macro generates the following:
pub enum Language {
Chinese,
English,
Japanese,
// ... all ISO 639 languages
}
impl Language {
pub fn all() -> Vec<Self> { ... }
pub fn from_zh(s: &str) -> Option<Self> { ... }
pub fn to_zh(&self) -> Option<&'static str> { ... }
pub fn from_en(s: &str) -> Option<Self> { ... }
pub fn to_en(&self) -> Option<&'static str> { ... }
// ... similar methods for all supported languages
}
The crate supports all major languages defined in the ISO 639 standard, including:
If you have any questions or suggestions, please contact us through:
MIT