Rust Inflector

Build Status Crates.io

Adds String based inflections for Rust. Snake, kebab, camel, sentence, class, title, upper, and lower cases as well as ordinalize, deordinalize, demodulize, deconstantize, and foreign key are supported as both traits and pure functions acting on String types.


TODO:


Installation:

Compile yourself:

  1. Install Rust and cargo
  2. git clone https://github.com/whatisinternet/inflector
  3. Library: cd inflector && cargo build --release --lib
  4. You can find the library in target/release

Usage:

```rust ... // to use methods like String.tolowercase(); extern crate inflector; use inflector::Inflector; ... fn main() { ... let camelcasestring: String = tocamelcase("somestring".tostring()); ... ... let camelcasestring: String = "somestring".tostring().tocamelcase(); ... }

```

Or

```rust ... // to use methods like tolowercase(String); extern crate inflector;

// use inflector::cases::classcase::toclasscase; // use inflector::cases::classcase::isclasscase;

// use inflector::cases::camelcase::tocamelcase; // use inflector::cases::camelcase::iscamelcase;

// use inflector::cases::snakecase::tosnakecase; // use inflector::cases::snakecase::issnakecase;

// use inflector::cases::kebabcase::tokebabcase; // use inflector::cases::kebabcase::iskebabcase;

// use inflector::cases::sentencecase::tosentencecase; // use inflector::cases::sentencecase::issentencecase;

// use inflector::cases::titlecase::totitlecase; // use inflector::cases::titlecase::istitlecase;

// use inflector::cases::uppercase::touppercase; // use inflector::cases::uppercase::isuppercase;

// use inflector::cases::lowercase::tolowercase; // use inflector::cases::lowercase::islowercase;

// use inflector::cases::::tolowercase; // use inflector::cases::lowercase::islowercase;

// use inflector::numbers::ordinalize::ordinalize; // use inflector::numbers::deordinalize::deordinalize;

// use inflector::suffix::foreignkey::toforeignkey; // use inflector::suffix::foreignkey::isforeignkey;

// use inflector::string::demodulize::demodulize; // use inflector::string::deconstantize::deconstantize; ... fn main() { ... let camelcasestring: String = tocamelcase("somestring".tostring()); ... }

```


Methods:

rust to_class_case(String) -> String

rust to_camel_case(String) -> String

rust to_snake_case(String) -> String

rust to_kebab_case(String) -> String

rust to_sentence_case(String) -> String

rust to_title_case(String) -> String

rust to_upper_case(String) -> String

rust to_lower_case(String) -> String

rust ordinalize(String) -> String

rust deordinalize(String) -> String

rust demodulize(String) -> String

rust deconstantize(String) -> String

rust to_foreign_key(String) -> String

rust is_class_case(String) -> bool

rust is_camel_case(String) -> bool

rust is_snake_case(String) -> bool

rust is_kebab_case(String) -> bool

rust is_sentence_case(String) -> bool

rust is_title_case(String) -> bool

rust is_upper_case(String) -> bool

rust is_lower_case(String) -> bool

rust is_foreign_key(String) -> bool

Contributing

  1. Fork it ( https://github.com/whatisinternet/inflector/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request