number_names/
lib.rs

1#![warn(missing_docs)]
2#![warn(rustdoc::missing_doc_code_examples)]
3#![doc = include_str!("../README.md")]
4
5pub mod format;
6pub mod languages;
7
8use crate::format::Format;
9use crate::languages::Language::*;
10
11/// Return cardinal number name for a given number with the default format
12///
13/// Example:
14/// ```rust
15/// assert_eq!(number_names::cardinal(10), "ten".to_string())
16/// ```
17pub fn cardinal(num: u64) -> String {
18    cardinal_with_fmt(num, Format::default())
19}
20
21/// Return cardinal number name for a given number with a given format
22///
23/// Example:
24/// ```rust
25/// use number_names::{cardinal_with_fmt, Format};
26///
27/// assert_eq(cardinal_with_fmt(20, Format::default()), "twenty".to_string());
28/// ```
29pub fn cardinal_with_fmt(num: u64, fmt: Format) -> String {
30    match fmt.language {
31        EnUs => crate::languages::en_us::cardinal_with_format(num, fmt),
32        _ => crate::languages::en_us::cardinal_with_format(num, fmt),
33    }
34}
35
36/// Return ordinal number name for a given number with the default format
37///
38/// Example:
39/// ```rust
40/// assert_eq!(number_names::ordinal(10), "tenth".to_string())
41/// ```
42pub fn ordinal(num: u64) -> String {
43    ordinal_with_fmt(num, Format::default())
44}
45
46/// Return ordinal number name for a given number with a given format
47///
48/// Example:
49/// ```rust
50/// use number_names::{ordinal_with_fmt, Format};
51///
52/// assert_eq(ordinal_with_fmt(20, Format::default()), "twentieth".to_string());
53/// ```
54pub fn ordinal_with_fmt(num: u64, fmt: Format) -> String {
55    match fmt.language {
56        EnUs => crate::languages::en_us::ordinal_with_format(num, fmt),
57        _ => crate::languages::en_us::ordinal_with_format(num, fmt),
58    }
59}
60
61mod tests;