mirror of
https://github.com/YGGverse/plurify.git
synced 2026-03-31 17:15:36 +00:00
initial commit
This commit is contained in:
parent
4ccf763a0e
commit
4f016e2ae0
6 changed files with 114 additions and 1 deletions
24
src/lib.rs
Normal file
24
src/lib.rs
Normal 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)]
|
||||
}]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue