e423fcf0e0
This commit is an implementation of [RFC 526][rfc] which is a change to alter the definition of the old `fmt::FormatWriter`. The new trait, renamed to `Writer`, now only exposes one method `write_str` in order to guarantee that all implementations of the formatting traits can only produce valid Unicode. [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0526-fmt-text-writer.md One of the primary improvements of this patch is the performance of the `.to_string()` method by avoiding an almost-always redundant UTF-8 check. This is a breaking change due to the renaming of the trait as well as the loss of the `write` method, but migration paths should be relatively easy: * All usage of `write` should move to `write_str`. If truly binary data was being written in an implementation of `Show`, then it will need to use a different trait or an altogether different code path. * All usage of `write!` should continue to work as-is with no modifications. * All usage of `Show` where implementations just delegate to another should continue to work as-is. [breaking-change] Closes #20352 |
||
---|---|---|
.. | ||
collections | ||
comm | ||
io | ||
num | ||
path | ||
rand | ||
rt | ||
sync | ||
sys | ||
thread_local | ||
time | ||
ascii.rs | ||
bitflags.rs | ||
bool.rs | ||
c_str.rs | ||
c_vec.rs | ||
dynamic_lib.rs | ||
error.rs | ||
failure.rs | ||
fmt.rs | ||
hash.rs | ||
lib.rs | ||
macros.rs | ||
os.rs | ||
prelude.rs | ||
rtdeps.rs | ||
task.rs | ||
thread.rs | ||
thunk.rs | ||
tuple.rs | ||
unit.rs |