summaryrefslogtreecommitdiffstats
path: root/vendor/prodash/src/unit/bytes.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
commit10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87 (patch)
treebdffd5d80c26cf4a7a518281a204be1ace85b4c1 /vendor/prodash/src/unit/bytes.rs
parentReleasing progress-linux version 1.70.0+dfsg1-9~progress7.99u1. (diff)
downloadrustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.tar.xz
rustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.zip
Merging upstream version 1.70.0+dfsg2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/prodash/src/unit/bytes.rs')
-rw-r--r--vendor/prodash/src/unit/bytes.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/vendor/prodash/src/unit/bytes.rs b/vendor/prodash/src/unit/bytes.rs
new file mode 100644
index 000000000..a79f97195
--- /dev/null
+++ b/vendor/prodash/src/unit/bytes.rs
@@ -0,0 +1,34 @@
+use std::fmt;
+
+use crate::{progress::Step, unit::DisplayValue};
+
+/// A marker for formatting numbers as bytes in renderers.
+#[derive(Copy, Clone, Default, Eq, PartialEq, Ord, PartialOrd, Debug)]
+pub struct Bytes;
+
+impl Bytes {
+ fn format_bytes(w: &mut dyn fmt::Write, value: Step) -> fmt::Result {
+ let string = bytesize::to_string(value as u64, false);
+ for token in string.split(' ') {
+ w.write_str(token)?;
+ }
+ Ok(())
+ }
+}
+
+impl DisplayValue for Bytes {
+ fn display_current_value(&self, w: &mut dyn fmt::Write, value: Step, _upper: Option<Step>) -> fmt::Result {
+ Self::format_bytes(w, value)
+ }
+ fn display_upper_bound(&self, w: &mut dyn fmt::Write, upper_bound: Step, _value: Step) -> fmt::Result {
+ Self::format_bytes(w, upper_bound)
+ }
+
+ fn dyn_hash(&self, state: &mut dyn std::hash::Hasher) {
+ state.write(&[])
+ }
+
+ fn display_unit(&self, _w: &mut dyn fmt::Write, _value: Step) -> fmt::Result {
+ Ok(())
+ }
+}