pub struct FormatterBuilder { /* private fields */ }Expand description
Formatter safe builder.
The safe and stable builder for fmt::Formatter
Due to unstable Formatter::new, uses this crate to dynamically build a Formatter.
§Examples
use formatter_builder::{FormatterBuilder, Fill, Sign, Alignment};
let mut output = String::new();
let n = 6.23;
formatter_builder::FormatterBuilder::new()
.width(8)
.align(Alignment::Right)
.precision(3)
.fill(Fill::Zero)
.with(&mut output, |f| {
std::fmt::Display::fmt(&n, f)
})
.unwrap();
assert_eq!(output, "0006.230")use std::fmt::{Display, Formatter, Result};
use formatter_builder::FormatterBuilder;
struct Foo(f32);
impl Display for Foo {
fn fmt(&self, f: &mut Formatter<'_>) -> Result {
FormatterBuilder::from_formatter_lossy(f)
.precision(2)
.with(f, |f| self.0.fmt(f))
}
}Implementations§
Source§impl FormatterBuilder
impl FormatterBuilder
pub fn new() -> Self
Sourcepub fn from_formatter_lossy(f: &Formatter<'_>) -> Self
pub fn from_formatter_lossy(f: &Formatter<'_>) -> Self
Sourcepub fn sign(&mut self, sign: impl Into<Option<Sign>>) -> &mut Self
pub fn sign(&mut self, sign: impl Into<Option<Sign>>) -> &mut Self
Format like {:+} and {:-}
§Examples
use std::fmt::Display;
let mut writter = String::new();
FormatterBuilder::new().sign(Sign::Plus).with(&mut writter, |f| {
2i32.fmt(f);
Ok(())
}).unwrap();
assert_eq!(writter, "+2");Sourcepub fn sign_aware_zero_pad(&mut self, sign_aware_zero_pad: bool) -> &mut Self
pub fn sign_aware_zero_pad(&mut self, sign_aware_zero_pad: bool) -> &mut Self
Format like {:0}
§Examples
FormatterBuilder::new().sign_aware_zero_pad(true).with(writter, |f| {
assert!(f.sign_aware_zero_pad());
Ok(())
}).unwrap();Sourcepub fn alternate(&mut self, alternate: bool) -> &mut Self
pub fn alternate(&mut self, alternate: bool) -> &mut Self
Format like {:#}
§Examples
FormatterBuilder::new().alternate(true).with(writter, |f| {
assert!(f.alternate());
Ok(())
}).unwrap();Sourcepub fn align(&mut self, align: impl Into<Option<Alignment>>) -> &mut Self
pub fn align(&mut self, align: impl Into<Option<Alignment>>) -> &mut Self
Format like {:<} and {:^} and {:>}
§Examples
FormatterBuilder::new().align(Center).with(writter, |f| {
assert_eq!(f.align(), Some(Center));
Ok(())
}).unwrap();Trait Implementations§
Source§impl Clone for FormatterBuilder
impl Clone for FormatterBuilder
Source§fn clone(&self) -> FormatterBuilder
fn clone(&self) -> FormatterBuilder
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FormatterBuilder
impl Debug for FormatterBuilder
Source§impl Default for FormatterBuilder
impl Default for FormatterBuilder
Source§fn default() -> FormatterBuilder
fn default() -> FormatterBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for FormatterBuilder
impl RefUnwindSafe for FormatterBuilder
impl Send for FormatterBuilder
impl Sync for FormatterBuilder
impl Unpin for FormatterBuilder
impl UnwindSafe for FormatterBuilder
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
Mutably borrows from an owned value. Read more