Fix: move format_bytes to crate root (available without installer feature)
This commit is contained in:
+1
-28
@@ -856,31 +856,4 @@ pub fn install(config: Config, output: impl AsRef<Path>) -> Result<()> {
|
||||
install_inner(config, output.as_ref())
|
||||
}
|
||||
|
||||
/// Convert bytes into readable string
|
||||
pub fn format_bytes(len: u64) -> String {
|
||||
const GB: u64 = 1024 * 1024 * 1024;
|
||||
const MB: u64 = 1024 * 1024;
|
||||
const KB: u64 = 1024;
|
||||
|
||||
if len > GB {
|
||||
format_bytes_inner(len, GB, "GB")
|
||||
} else if len > MB {
|
||||
format_bytes_inner(len, MB, "MB")
|
||||
} else if len > KB {
|
||||
format_bytes_inner(len, KB, "KB")
|
||||
} else {
|
||||
format!("{len} B")
|
||||
}
|
||||
}
|
||||
|
||||
fn format_bytes_inner(len: u64, divisor: u64, suffix: &'static str) -> String {
|
||||
let mut s = format!("{}", len / divisor);
|
||||
if s.len() == 1 {
|
||||
let _ = write!(s, ".{:02}", (len % divisor) / (divisor / 100));
|
||||
} else if s.len() == 2 {
|
||||
let _ = write!(s, ".{:01}", (len % divisor) / (divisor / 10));
|
||||
}
|
||||
|
||||
let _ = write!(s, " {suffix}");
|
||||
s
|
||||
}
|
||||
pub use crate::format_bytes;
|
||||
|
||||
+29
@@ -12,3 +12,32 @@ pub use crate::installer::*;
|
||||
pub use crate::config::file::FileConfig;
|
||||
pub use crate::config::package::PackageConfig;
|
||||
pub use crate::config::Config;
|
||||
|
||||
use core::fmt::Write as _;
|
||||
|
||||
pub fn format_bytes(len: u64) -> String {
|
||||
const GB: u64 = 1024 * 1024 * 1024;
|
||||
const MB: u64 = 1024 * 1024;
|
||||
const KB: u64 = 1024;
|
||||
|
||||
fn inner(len: u64, divisor: u64, suffix: &str) -> String {
|
||||
let mut s = format!("{}", len / divisor);
|
||||
if s.len() == 1 {
|
||||
let _ = write!(s, ".{:02}", (len % divisor) / (divisor / 100));
|
||||
} else if s.len() == 2 {
|
||||
let _ = write!(s, ".{:01}", (len % divisor) / (divisor / 10));
|
||||
}
|
||||
let _ = write!(s, " {suffix}");
|
||||
s
|
||||
}
|
||||
|
||||
if len > GB {
|
||||
inner(len, GB, "GB")
|
||||
} else if len > MB {
|
||||
inner(len, MB, "MB")
|
||||
} else if len > KB {
|
||||
inner(len, KB, "KB")
|
||||
} else {
|
||||
format!("{len} B")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user