initial commit

This commit is contained in:
yggverse 2024-12-18 12:43:17 +02:00
parent 4ccf763a0e
commit 4f016e2ae0
6 changed files with 114 additions and 1 deletions

24
src/lib.rs Normal file
View file

@ -0,0 +1,24 @@
/// Get plural string `s` match number `n`
///
/// ## Example
/// ``` rust
/// use plurify::ns;
///
/// let en = &["cat", "cats", "cats"];
/// let uk = &["кіт", "кота", "котів"];
///
/// assert_eq!(ns(1, en), "cat");
/// assert_eq!(ns(2, en), "cats");
/// assert_eq!(ns(5, en), "cats");
///
/// assert_eq!(ns(1, uk), "кіт");
/// assert_eq!(ns(2, uk), "кота");
/// assert_eq!(ns(5, uk), "котів");
/// ```
pub fn ns<'a>(n: usize, s: &[&'a str]) -> &'a str {
s[if (n % 100) > 4 && (n % 100) < 20 {
2
} else {
[2, 0, 1, 1, 1, 2][std::cmp::min(n % 10, 5)]
}]
}