pub struct FilesizeFormatter { /* private fields */ }
Expand description
A configurable formatter for Filesize
s.
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
unit
ofFilesizeUnitFormat::Metric
. - a
show_unit
oftrue
. - a
precision
ofNone
. - a
locale
ofLocale::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 Filesize
s.
§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 Filesize
s. 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:
unit
isFilesizeUnit::B
,unit
isFilesizeUnitFormat::Metric
and the number of bytes is less thanFilesizeUnit::KB
unit
isFilesizeUnitFormat::Binary
and 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