Inflection Rust

This crate is a port of a port:

Inflection is a string transformation library. It singularizes and pluralizes English words, and transforms strings from CamelCase to underscored string. Inflection is a port of Ruby on Rails’ inflector to Python.

Source: https://github.com/jpvanhal/inflection

Crate

toml inflection-rs = "0.2.0"

Documentation

Camelize

```rust use inflection_rs::inflection;

fn main() { asserteq!(inflection::camelizeupper("Capital", false), "capital"); asserteq!(inflection::camelize("CamelCase"), "CamelCase"); asserteq!(inflection::camelize("specialguest"), "SpecialGuest"); } ```

Dasherize

```rust use inflection_rs::inflection;

fn main() { asserteq!(inflection::dasherize("punipuni"), "puni-puni"); } ```

Humanize

```rust use inflection_rs::inflection;

fn main() { asserteq!(inflection::humanize("employeesalary"), "Employee salary"); asserteq!(inflection::humanize("authorid"), "Author"); } ```

Parameterize

```rust use inflection_rs::inflection;

fn main() { asserteq!( inflection::parameterizewithsep(r"Donald E. Knuth", "+".tostring()), "donald+e+knuth" ); asserteq!( inflection::parameterizewithsep(r"Donald E. Knuth", "~".tostring()), "donald~e~knuth" ); asserteq!( inflection::parameterizewithsep(r"Donald E. Knuth", "-".tostring()), "donald-e-knuth" ); assert_eq!( inflection::parameterize(r"Donald E. Knuth"), "donald-e-knuth" ); } ```

Underscore

```rust use inflection_rs::inflection;

fn main() { asserteq!(inflection::underscore("DeviceType"), "devicetype"); // Note: not always reversible let rev = inflection::underscore("IOError"); assert_eq!(inflection::camelize(rev), "IoError"); } ```

Pluralize

```rust use inflection_rs::inflection;

fn main() { asserteq!(inflection::pluralize("post"), "posts"); asserteq!(inflection::pluralize("posts"), "posts"); asserteq!(inflection::pluralize("octopus"), "octopi"); asserteq!(inflection::pluralize("sheep"), "sheep"); asserteq!(inflection::pluralize("CamelOctopus"), "CamelOctopi"); asserteq!(inflection::pluralize("moves"), "moves"); asserteq!(inflection::pluralize("move"), "moves"); asserteq!(inflection::pluralize("cow"), "kine"); asserteq!(inflection::pluralize("kine"), "kine"); asserteq!(inflection::pluralize("slave"), "slaves"); assert_eq!(inflection::pluralize("slaves"), "slaves"); } ```

Singularize

```rust use inflection_rs::inflection;

fn main() { asserteq!(inflection::singularize("post"), "post"); asserteq!(inflection::singularize("posts"), "post"); asserteq!(inflection::singularize("octopi"), "octopus"); asserteq!(inflection::singularize("sheep"), "sheep"); asserteq!(inflection::singularize("CamelOctopi"), "CamelOctopus"); asserteq!(inflection::singularize("move"), "move"); asserteq!(inflection::singularize("moves"), "move"); asserteq!(inflection::singularize("cow"), "cow"); asserteq!(inflection::singularize("kine"), "cow"); asserteq!(inflection::singularize("slaves"), "slave"); assert_eq!(inflection::singularize("slave"), "slave"); } ```

Titleize

```rust use inflection_rs::inflection;

fn main() { asserteq!( inflection::titleize("TheManWithoutAPast"), "The Man Without A Past" ); asserteq!( inflection::titleize("x-men: the last stand"), "X Men: The Last Stand" ); asserteq!( inflection::titleize("raidersofthelostark"), "Raiders Of The Lost Ark" ); asserteq!( inflection::titleize("man from the boondocks"), "Man From The Boondocks" ); } ```

Ordinal

```rust use inflection_rs::inflection;

fn main() { asserteq!(inflection::ordinalu8(1), "st"); asserteq!(inflection::ordinalu16(2), "nd"); asserteq!(inflection::ordinalu32(3), "rd"); asserteq!(inflection::ordinalu64(4), "th"); asserteq!(inflection::ordinalu128(10), "th"); asserteq!(inflection::ordinalusize(10), "th");

assert_eq!(inflection::ordinal_i8(1), "st");
assert_eq!(inflection::ordinal_i16(2), "nd");
assert_eq!(inflection::ordinal_i32(3), "rd");
assert_eq!(inflection::ordinal_i64(4), "th");
assert_eq!(inflection::ordinal_i128(10), "th");

assert_eq!(inflection::ordinal_i8(-1), "st");
assert_eq!(inflection::ordinal_i16(-2), "nd");
assert_eq!(inflection::ordinal_i32(-3), "rd");
assert_eq!(inflection::ordinal_i64(-4), "th");
assert_eq!(inflection::ordinal_i128(-10), "th");

} ```

Ordinalize

```rust use inflection_rs::inflection;

fn main() { asserteq!(inflection::ordinalizeu8(1), "1st"); asserteq!(inflection::ordinalizeu16(2), "2nd"); asserteq!(inflection::ordinalizeu32(3), "3rd"); asserteq!(inflection::ordinalizeu64(4), "4th"); asserteq!(inflection::ordinalizeu128(10), "10th"); asserteq!(inflection::ordinalizeusize(100), "100th"); asserteq!(inflection::ordinalizeusize(10000000), "10000000th");

assert_eq!(inflection::ordinalize_i8(1), "1st");
assert_eq!(inflection::ordinalize_i16(2), "2nd");
assert_eq!(inflection::ordinalize_i32(3), "3rd");
assert_eq!(inflection::ordinalize_i64(4), "4th");
assert_eq!(inflection::ordinalize_i128(10), "10th");
assert_eq!(inflection::ordinalize_i128(10000000), "10000000th");

assert_eq!(inflection::ordinalize_i8(-1), "-1st");
assert_eq!(inflection::ordinalize_i16(-2), "-2nd");
assert_eq!(inflection::ordinalize_i32(-3), "-3rd");
assert_eq!(inflection::ordinalize_i64(-4), "-4th");
assert_eq!(inflection::ordinalize_i128(-10000), "-10000th");
assert_eq!(inflection::ordinalize_i128(-10000000), "-10000000th");

} ```

Normalize Spaces

```rust use inflection_rs::inflection;

fn main() { asserteq!(inflection::normalizespaces(" hello there "), "hello there"); asserteq!(inflection::normalizespaces(" hell o there "), "hell o there"); asserteq!(inflection::normalizespaces(""), ""); asserteq!(inflection::normalizespaces(" "), ""); } ```