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, foreign key, table case, and pluralize/singularize are supported as both traits and pure functions acting on String types.


Documentation:

Documentation can be found here at the README or via rust docs below.

Rust docs with examples


Installation:

As a crate

toml [dependencies] Inflector = "0.3.0"

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 = "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::screamingsnakecase::toscreamingsnakecase; // use inflector::cases::screamingsnakecase::isscreamingsnakecase;

// 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::tablecase::totablecase; // use inflector::cases::tablecase::istablecase;

// 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;

// use inflector::string::pluralize::toplural; // use inflector::string::singularize::tosingular; ... fn main() { ... let camelcasestring: String = tocamelcase("somestring".tostring()); ... }

```


Methods:

rust to_class_case(String) -> String

rust to_camel_case(String) -> String

rust to_screaming_snake_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_table_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 to_plural(String) -> String

rust to_singular(String) -> String

rust is_class_case(String) -> bool

rust is_camel_case(String) -> bool

rust is_screaming_snake_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_table_case(String) -> bool

rust is_upper_case(String) -> bool

rust is_lower_case(String) -> bool

rust is_foreign_key(String) -> bool

Contributing

This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

  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