writeable 
This crate defines [Writeable], a trait representing an object that can be written to a
sink implementing std::fmt::Write. It is an alternative to std::fmt::Display with the
addition of a function indicating the number of bytes to be written.
Writeable improves upon std::fmt::Display in two ways:
- More efficient, since the sink can pre-allocate bytes.
- Smaller code, since the format machinery can be short-circuited.
This crate also exports [TryWriteable], a writeable that supports a custom error.
Benchmarks
The benchmarks to generate the following data can be found in the benches directory.
| Case | Writeable |
Display |
|---|---|---|
| Create string from single-string message (139 chars) | 15.642 ns | 19.251 ns |
| Create string from complex message | 35.830 ns | 89.478 ns |
| Write complex message to buffer | 57.336 ns | 64.408 ns |
Examples
use fmt;
use assert_writeable_eq;
use LengthHint;
use Writeable;
let message = WelcomeMessage ;
assert_writeable_eq!;
// Types implementing `Writeable` are recommended to also implement `fmt::Display`.
// This can be simply done by redirecting to the `Writeable` implementation:
impl_display_with_writeable!;
assert_eq!;
More Information
For more information on development, authorship, contributing etc. please visit ICU4X home page.