pub struct FilesizeFormatter { /* private fields */ }Expand description
A configurable formatter for Filesizes.
FilesizeFormatter is a builder struct that you can modify via the following methods:
For more information, see the documentation for each of those methods.
§Examples
let filesize = Filesize::from_unit(4, FilesizeUnit::KiB).unwrap();
let formatter = FilesizeFormatter::new();
assert_eq!(formatter.unit(FilesizeUnit::B).format(filesize).to_string(), "4096 B");
assert_eq!(formatter.unit(FilesizeUnit::KiB).format(filesize).to_string(), "4 KiB");
assert_eq!(formatter.precision(2).format(filesize).to_string(), "4.09 kB");
assert_eq!(
formatter
.unit(FilesizeUnit::B)
.locale(Locale::en)
.format(filesize)
.to_string(),
"4,096 B",
);Implementations§
Source§impl FilesizeFormatter
impl FilesizeFormatter
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new, default FilesizeFormatter.
The default formatter has:
- a
unitofFilesizeUnitFormat::Metric. - a
show_unitoftrue. - a
precisionofNone. - a
localeofLocale::en_US_POSIX(a very plain format with no thousands separators).
Sourcepub fn unit(self, unit: impl Into<FilesizeUnitFormat>) -> Self
pub fn unit(self, unit: impl Into<FilesizeUnitFormat>) -> Self
Set the FilesizeUnitFormat used by the formatter.
A FilesizeUnit or a FilesizeUnitFormat can be provided to this method.
FilesizeUnitFormat::Metric and FilesizeUnitFormat::Binary will use a unit of an
appropriate scale for each Filesize, whereas providing a FilesizeUnit will use that
unit to format all Filesizes.
§Examples
let formatter = FilesizeFormatter::new().precision(1);
let filesize = Filesize::from_unit(4, FilesizeUnit::KiB).unwrap();
assert_eq!(formatter.unit(FilesizeUnit::B).format(filesize).to_string(), "4096 B");
assert_eq!(formatter.unit(FilesizeUnitFormat::Binary).format(filesize).to_string(), "4.0 KiB");
let filesize = Filesize::from_unit(4, FilesizeUnit::MiB).unwrap();
assert_eq!(formatter.unit(FilesizeUnitFormat::Metric).format(filesize).to_string(), "4.1 MB");
assert_eq!(formatter.unit(FilesizeUnitFormat::Binary).format(filesize).to_string(), "4.0 MiB");Sourcepub fn show_unit(self, show_unit: bool) -> Self
pub fn show_unit(self, show_unit: bool) -> Self
Sets whether to show or omit the file size unit in the formatted output.
This setting can be used to disable the unit formatting from FilesizeFormatter
and instead provide your own.
Note that the FilesizeUnitFormat provided to unit is still used to
format the numeric portion of a Filesize. So, setting show_unit to false is only
recommended for FilesizeUnitFormat::Unit, since this will keep the unit the same
for all Filesizes. FilesizeUnitFormat::Metric and FilesizeUnitFormat::Binary,
on the other hand, will adapt the unit to match the magnitude of each formatted Filesize.
§Examples
let filesize = Filesize::from_unit(4, FilesizeUnit::KiB).unwrap();
let formatter = FilesizeFormatter::new().show_unit(false);
assert_eq!(formatter.unit(FilesizeUnit::B).format(filesize).to_string(), "4096");
assert_eq!(format!("{} KB", formatter.unit(FilesizeUnit::KiB).format(filesize)), "4 KB");Sourcepub fn precision(self, precision: impl Into<Option<usize>>) -> Self
pub fn precision(self, precision: impl Into<Option<usize>>) -> Self
Set the number of digits to display after the decimal place.
Note that digits after the decimal place will never be shown if:
unitisFilesizeUnit::B,unitisFilesizeUnitFormat::Metricand the number of bytes is less thanFilesizeUnit::KBunitisFilesizeUnitFormat::Binaryand the number of bytes is less thanFilesizeUnit::KiB.
Additionally, the precision specified in the format string
(i.e., std::fmt::Formatter::precision) will take precedence if is specified.
If the format string precision and the FilesizeFormatter’s precision are both None,
then all digits after the decimal place, if any, are shown.
§Examples
let filesize = Filesize::from_unit(4, FilesizeUnit::KiB).unwrap();
let formatter = FilesizeFormatter::new();
assert_eq!(formatter.precision(2).format(filesize).to_string(), "4.09 kB");
assert_eq!(formatter.precision(0).format(filesize).to_string(), "4 kB");
assert_eq!(formatter.precision(None).format(filesize).to_string(), "4.096 kB");
assert_eq!(
formatter
.precision(None)
.unit(FilesizeUnit::KiB)
.format(filesize)
.to_string(),
"4 KiB",
);
assert_eq!(
formatter
.unit(FilesizeUnit::B)
.precision(2)
.format(filesize)
.to_string(),
"4096 B",
);
assert_eq!(format!("{:.2}", formatter.precision(0).format(filesize)), "4.09 kB");Sourcepub fn locale(self, locale: Locale) -> Self
pub fn locale(self, locale: Locale) -> Self
Set the Locale to use when formatting the numeric portion of a Filesize.
The Locale determines the decimal place character, minus sign character,
digit grouping method, and digit separator character.
§Examples
let filesize = Filesize::from_unit(-4, FilesizeUnit::MiB).unwrap();
let formatter = FilesizeFormatter::new().unit(FilesizeUnit::KB).precision(1);
assert_eq!(formatter.format(filesize).to_string(), "-4194.3 kB");
assert_eq!(formatter.locale(Locale::en).format(filesize).to_string(), "-4,194.3 kB");
assert_eq!(formatter.locale(Locale::rm).format(filesize).to_string(), "\u{2212}4’194.3 kB");
let filesize = Filesize::from_unit(-4, FilesizeUnit::GiB).unwrap();
assert_eq!(formatter.locale(Locale::ta).format(filesize).to_string(), "-42,94,967.2 kB");Sourcepub fn format(&self, filesize: Filesize) -> FormattedFilesize
pub fn format(&self, filesize: Filesize) -> FormattedFilesize
Format a Filesize into a FormattedFilesize which implements fmt::Display.
§Examples
let filesize = Filesize::from_unit(4, FilesizeUnit::KB).unwrap();
let formatter = FilesizeFormatter::new();
assert_eq!(format!("{}", formatter.format(filesize)), "4 kB");
assert_eq!(formatter.format(filesize).to_string(), "4 kB");Trait Implementations§
Source§impl Clone for FilesizeFormatter
impl Clone for FilesizeFormatter
Source§fn clone(&self) -> FilesizeFormatter
fn clone(&self) -> FilesizeFormatter
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FilesizeFormatter
impl Debug for FilesizeFormatter
Source§impl Default for FilesizeFormatter
impl Default for FilesizeFormatter
Source§impl From<FilesizeConfig> for FilesizeFormatter
impl From<FilesizeConfig> for FilesizeFormatter
Source§fn from(config: FilesizeConfig) -> Self
fn from(config: FilesizeConfig) -> Self
Source§impl Hash for FilesizeFormatter
impl Hash for FilesizeFormatter
Source§impl PartialEq for FilesizeFormatter
impl PartialEq for FilesizeFormatter
impl Copy for FilesizeFormatter
impl Eq for FilesizeFormatter
impl StructuralPartialEq for FilesizeFormatter
Auto Trait Implementations§
impl Freeze for FilesizeFormatter
impl RefUnwindSafe for FilesizeFormatter
impl Send for FilesizeFormatter
impl Sync for FilesizeFormatter
impl Unpin for FilesizeFormatter
impl UnwindSafe for FilesizeFormatter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoSpanned for T
impl<T> IntoSpanned for T
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more