in_definite

Crates.ioin_definite
lib.rsin_definite
version1.0.0
sourcesrc
created_at2019-09-18 20:35:13.057981
updated_at2023-09-04 11:56:57.339871
descriptionGet the indefinite article ('a' or 'an') to match the given word. For example: an umbrella, a user.
homepage
repositoryhttps://github.com/mrseanryan/in_definite
max_upload_size
id165813
size27,103
Sean Ryan (mrseanryan)

documentation

README

in_definite

Rust port of indefinite on npm, for deciding which indefinite article to use ('a' or 'an').

Get the indefinite article ('a' or 'an') to match the given word. For example: an umbrella, a user.

Rust

Examples

use in_definite;

let result = in_definite::get_a_or_an("alien");
assert_eq!("an", result);
// Irregular word
let result = in_definite::get_a_or_an("unicorn");
assert_eq!("a", result);
// Title Case
let result = in_definite::get_a_or_an("Ugly");
assert_eq!("An", result);
let result = in_definite::is_an("alien");
assert_eq!(in_definite::Is::An, result);
let result = in_definite::is_an("unicorn");
assert_eq!(in_definite::Is::A, result);

Deviations from the original indefinite

Upper/lower/mixed case handling:

  • a word like THIS will be always considered to be an acronym.
  • normally the result is lower case ('a' or 'an')
  • title case is handled as: 'Ugly' -> 'An'
  • mixed case is handled as: 'uGly' -> 'an'

Adverbs:

  • Handles adverbs with '-ly' in a generic manner. Example: "a ubiquitously"

A big thanks to the original authors of indefinite!

Published @ crates.io

https://crates.io/crates/in_definite

licence = MIT

This project is licensed under the MIT License - see the LICENSE file for details

Commit count: 151

cargo fmt