pub struct Buffer { /* private fields */ }
Expand description
A correctly sized stack allocation for the formatted float to be written into.
Example
let mut buffer = dtoa::Buffer::new();
let printed = buffer.format_finite(2.71828);
assert_eq!(printed, "2.71828");
Implementations§
source§impl Buffer
impl Buffer
sourcepub fn new() -> Buffer
pub fn new() -> Buffer
This is a cheap operation; you don’t need to worry about reusing buffers for efficiency.
sourcepub fn format<F: Float>(&mut self, value: F) -> &str
pub fn format<F: Float>(&mut self, value: F) -> &str
Print a floating point number into this buffer and return a reference to its string representation within the buffer.
Special cases
This function formats NaN as the string “NaN”, positive infinity as “inf”, and negative infinity as “-inf” to match std::fmt.
If your input is known to be finite, you may get better performance by
calling the format_finite
method instead of format
to avoid the
checks for special cases.
sourcepub fn format_finite<F: Float>(&mut self, value: F) -> &str
pub fn format_finite<F: Float>(&mut self, value: F) -> &str
Print a floating point number into this buffer and return a reference to its string representation within the buffer.
Special cases
This function does not check for NaN or infinity. If the input number is not a finite float, the printed representation will be some correctly formatted but unspecified numerical value.
Please check is_finite
yourself before calling this function, or
check is_nan
and is_infinite
and handle those cases yourself.