pub trait ToCompactString {
// Required method
fn try_to_compact_string(
&self,
) -> Result<CompactString, ToCompactStringError>;
// Provided method
fn to_compact_string(&self) -> CompactString { ... }
}Expand description
A trait for converting a value to a CompactString.
This trait is automatically implemented for any type which implements the
fmt::Display trait. As such, ToCompactString shouldn’t be implemented directly:
fmt::Display should be implemented instead, and you get the ToCompactString
implementation for free.
Required Methods§
Sourcefn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of ToCompactString::to_compact_string()
This method won’t panic if the system is out-of-memory, but return a
ReserveError.
Otherwise it behaves the same as ToCompactString::to_compact_string().
Provided Methods§
Sourcefn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a CompactString.
§Panics
Panics if the system runs out of memory and it cannot hold the whole string,
or if Display::fmt() returns an error.
§Examples
Basic usage:
use compact_str::ToCompactString;
let i = 5;
let five = CompactString::new("5");
assert_eq!(i.to_compact_string(), five);Implementors§
impl<T> ToCompactString for Twhere
T: Display,
§Panics
In this implementation, the to_compact_string method panics if the Display implementation
returns an error. This indicates an incorrect Display implementation since
std::fmt::Write for CompactString never returns an error itself.
§Note
We use the castaway crate to provide zero-cost specialization for several types, those are: