Fix: move format_bytes to crate root (available without installer feature)

This commit is contained in:
Red Bear OS
2026-07-11 21:24:05 +03:00
parent a1bc3ff0f4
commit 04f80ba395
2 changed files with 30 additions and 28 deletions
+1 -28
View File
@@ -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
View File
@@ -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")
}
}