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())
|
install_inner(config, output.as_ref())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Convert bytes into readable string
|
pub use crate::format_bytes;
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|||||||
+29
@@ -12,3 +12,32 @@ pub use crate::installer::*;
|
|||||||
pub use crate::config::file::FileConfig;
|
pub use crate::config::file::FileConfig;
|
||||||
pub use crate::config::package::PackageConfig;
|
pub use crate::config::package::PackageConfig;
|
||||||
pub use crate::config::Config;
|
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