Rust Inflector
Adds String based inflections for Rust. Snake, kebab, camel, sentence, class, title, upper, and lower cases as well as ordinalize, deordinalize, demodulize, and foreign key are supported as both traits and pure functions acting on String types.
TODO:
- Traits for String
- Traits for str
- Snake case
- Kebab case
- Camel case
- Class case
- Sentence case
- Title case
- Upper case
- Lower case
- Ordinalize and reverse
- Foreign key
- Demodulize
- Pluralize
- Singularize
- Table case
Installation:
Compile yourself:
- Install Rust and cargo
- git clone https://github.com/whatisinternet/inflector
- Library: cd inflector && cargo build --release --lib
- You can find the library in target/release
Usage:
...
extern crate inflector;
use *;
// use inflector::cases::classcase::to_class_case;
// use inflector::cases::classcase::is_class_case;
// use inflector::cases::camelcase::to_camel_case;
// use inflector::cases::camelcase::is_camel_case;
// use inflector::cases::snakecase::to_snake_case;
// use inflector::cases::snakecase::is_snake_case;
// use inflector::cases::kebabcase::to_kebab_case;
// use inflector::cases::kebabcase::is_kebab_case;
// use inflector::cases::sentencecase::to_sentence_case;
// use inflector::cases::sentencecase::is_sentence_case;
// use inflector::cases::titlecase::to_title_case;
// use inflector::cases::titlecase::is_title_case;
// use inflector::cases::uppercase::to_upper_case;
// use inflector::cases::uppercase::is_upper_case;
// use inflector::cases::lowercase::to_lower_case;
// use inflector::cases::lowercase::is_lower_case;
// use inflector::cases::::to_lower_case;
// use inflector::cases::lowercase::is_lower_case;
// use inflector::numbers::ordinalize::ordinalize;
// use inflector::numbers::deordinalize::deordinalize;
// use inflector::suffix::foreignkey::to_foreign_key;
// use inflector::suffix::foreignkey::is_foreign_key;
// use inflector::string::demodulize::demodulize;
// use inflector::string::deconstantize::deconstantize;
...
Methods:
to_class_case
to_camel_case
to_snake_case
to_kebab_case
to_sentence_case
to_title_case
to_upper_case
to_lower_case
ordinalize
deordinalize
demodulize
deconstantize
to_foreign_key
is_class_case
is_camel_case
is_snake_case
is_kebab_case
is_sentence_case
is_title_case
is_upper_case
is_lower_case
is_foreign_key
Contributing
- Fork it ( https://github.com/whatisinternet/inflector/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request