in_definite 1.0.0

Get the indefinite article ('a' or 'an') to match the given word. For example: an umbrella, a user.
Documentation
# in_definite
Rust port of [indefinite](https://www.npmjs.com/package/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](https://img.shields.io/badge/rust-1.37.0%2B-blue.svg?maxAge=3600)](https://github.com/mrseanryan/in_definite)
[![](https://img.shields.io/crates/v/in_definite.svg)](https://crates.io/crates/in_definite)
[![](https://docs.rs/in_definite/badge.svg)](https://docs.rs/in_definite)


## Examples

```rust
use in_definite;

let result = in_definite::get_a_or_an("alien");
assert_eq!("an", result);
```

```rust
// Irregular word
let result = in_definite::get_a_or_an("unicorn");
assert_eq!("a", result);
```

```rust
// Title Case
let result = in_definite::get_a_or_an("Ugly");
assert_eq!("An", result);
```

```rust
let result = in_definite::is_an("alien");
assert_eq!(in_definite::Is::An, result);
```

```rust
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](https://www.npmjs.com/package/indefinite)!

## Published @ crates.io

https://crates.io/crates/in_definite

## licence = MIT

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details