pub(crate) fn fmt_count(n: u64) -> String {
let s = n.to_string();
let mut result = String::with_capacity(s.len() + s.len() / 3);
for (i, ch) in s.chars().enumerate() {
if i > 0 && (s.len() - i).is_multiple_of(3) {
result.push(',');
}
result.push(ch);
}
result
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn small() {
assert_eq!(fmt_count(0), "0");
assert_eq!(fmt_count(999), "999");
}
#[test]
fn with_commas() {
assert_eq!(fmt_count(1_000), "1,000");
assert_eq!(fmt_count(1_234_567), "1,234,567");
assert_eq!(fmt_count(1_000_000_000), "1,000,000,000");
}
}