Function written_numbers::to_words
source · pub fn to_words(
number: &str,
options: &ToWordsOptions,
language_options: &LanguageOptions,
languages: &mut LanguagesMap
) -> Result<String, ToWordsError>
Examples found in repository?
examples/cli.rs (lines 56-67)
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
fn main() {
let args = Args::parse();
let mut number = args.number;
if number == "random" {
number = format!("{}", rand::thread_rng().gen_range(1..999));
let mut zero_count = rand::thread_rng().gen_range(2..999997);
while zero_count > 0 {
number += "000";
zero_count -= 1;
}
}
let result = to_words(
&number,
&ToWordsOptions {
language: args.language.to_string(),
},
&hashmap! {
"hundred_and".to_string() => (if args.hundred_and {"true"} else {"false"}).to_string(),
"commas".to_string() => (if args.commas {"true"} else {"false"}).to_string(),
"ordinal".to_string() => (if args.ordinal {"true"} else {"false"}).to_string(),
},
&mut hashmap! {},
);
match result {
Ok(result) => {
if args.match_case.is_uppercase() {
println!("{}", str_cap(&result));
} else {
println!("{result}");
}
}
Err(err) => match err {
ToWordsError::NotANumber => {
println!("\"{}\" is not a valid number.", number);
}
ToWordsError::UnimplementedLanguage => {
println!(
"The language \"{}\" hasn't been implemented yet.",
args.language
);
}
},
}
if args.memory {
let peak_mem = PEAK_ALLOC.peak_usage_as_mb();
println!("Peak memory: {} MB", peak_mem);
}
}