Crate writeable
writeable is a utility crate of the ICU4X project.
It includes Writeable, a core 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.
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!;
Modules
- adapters Helper types for trait impls.
Structs
-
LengthHint
A hint to help consumers of
Writeablepre-allocate bytes before they callwrite_to. -
Part
Parts are used as annotations for formatted strings.
Traits
-
PartsWrite
A sink that supports annotating parts of the string with
Parts. - TryWriteable A writeable object that can fail while writing.
-
Writeable
Writeableis an alternative tostd::fmt::Displaywith the addition of a length function.
Functions
-
cmp_str
Compares the contents of a
Writeableto the given bytes without allocating a String to hold theWriteablecontents. -
cmp_utf8
Compares the contents of a
Writeableto the given UTF-8 bytes without allocating memory. -
to_string_or_borrow
Writes the contents of a
Writeableto a string, returning a reference to a slice if it matches the provided reference bytes, and allocating a String otherwise.
Macros
-
assert_try_writeable_eq
Testing macros for types implementing
TryWriteable. -
assert_try_writeable_parts_eq
See
assert_try_writeable_eq. -
assert_writeable_eq
Testing macros for types implementing
Writeable. -
assert_writeable_parts_eq
See
assert_writeable_eq. -
impl_display_with_writeable
Implements
Displayfor types that implementWriteable.