singularize

Function singularize 

Source
pub fn singularize(word: &str) -> String
Expand description

Convert a plural English word to its singular form.

This function handles:

  • Irregular plurals (children → child, people → person, etc.)
  • Uncountable nouns (sheep, fish, etc.) - returned unchanged
  • Standard suffix rules:
    • -ies-y (dependencies → dependency)
    • -ves-f or -fe (wolves → wolf, knives → knife)
    • -es → remove -es for words ending in s, x, z, ch, sh (boxes → box)
    • -s → remove -s (items → item)

§Examples

use facet_singularize::singularize;

// Irregular
assert_eq!(singularize("children"), "child");
assert_eq!(singularize("people"), "person");
assert_eq!(singularize("mice"), "mouse");

// Standard rules
assert_eq!(singularize("dependencies"), "dependency");
assert_eq!(singularize("boxes"), "box");
assert_eq!(singularize("items"), "item");
assert_eq!(singularize("wolves"), "wolf");

// Uncountable (unchanged)
assert_eq!(singularize("sheep"), "sheep");
assert_eq!(singularize("fish"), "fish");