| Crates.io | lang-types |
| lib.rs | lang-types |
| version | 0.1.0 |
| created_at | 2025-02-24 11:50:39.942875+00 |
| updated_at | 2025-02-24 11:50:39.942875+00 |
| description | A Language enum for programming language identification and file extension mapping. |
| homepage | |
| repository | https://github.com/eddiesankey/lang-types |
| max_upload_size | |
| id | 1567350 |
| size | 26,296 |
This crate provides the Language enum for programming language identification and file extension mapping.
Add to your Cargo.toml:
[dependencies]
lang-types = "0.1"
# or
[dependencies]
lang-types = { version = "0.1", features = ["serde"] }
Basic usage
use lang_types::Language;
// Get a language from file extension
assert_eq!(Language::from_extension(".rs"), Some(Language::Rust));
assert_eq!(Language::from_extension("py"), Some(Language::Python));
// Get language from common name
assert_eq!(Language::from_name("python"), Some(Language::Python));
assert_eq!(Language::from_name("python3"), Some(Language::Python));
To add support for a new programming language, submit a pull request modifying the languages.json file in the root directory. Each language entry should follow this format:
{
"name": "Python", // Display name of the language
"enum_name": "Python", // Optional: Name to use in the Rust enum (defaults to name)
"extensions": [
"py",
"pyi",
"pyc"
],
"aliases": [ // Alternative names for the language
"py",
"python3"
]
}
Guidelines for new languages