format.rs 469 B

12345678910111213141516
  1. fn formatBytes(mut amount: u64, kilo: u64, prefixes: ~[&str]) -> ~str {
  2. let mut prefix = 0;
  3. while amount > kilo {
  4. amount /= kilo;
  5. prefix += 1;
  6. }
  7. return format!("{:4}{}", amount, prefixes[prefix]);
  8. }
  9. pub fn formatBinaryBytes(amount: u64) -> ~str {
  10. formatBytes(amount, 1024, ~[ "B ", "KiB", "MiB", "GiB", "TiB" ])
  11. }
  12. pub fn formatDecimalBytes(amount: u64) -> ~str {
  13. formatBytes(amount, 1000, ~[ "B ", "KB", "MB", "GB", "TB" ])
  14. }