Note that formatters should not return spurious errors.
Doing otherwise would break traits like `ToString`.
This commit is contained in:
parent
e4dd785b59
commit
f2655e23ff
1 changed files with 8 additions and 2 deletions
|
|
@ -166,8 +166,14 @@
|
|||
//!
|
||||
//! Additionally, the return value of this function is `fmt::Result` which is a
|
||||
//! typedef to `Result<(), std::fmt::Error>`. Formatting implementations should
|
||||
//! ensure that they return errors from `write!` correctly (propagating errors
|
||||
//! upward).
|
||||
//! ensure that they propagate errors from the `Formatter` (e.g., when calling
|
||||
//! `write!`) however, they should never return errors spuriously. That is, a
|
||||
//! formatting implementation must and may only return an error if the passed-in
|
||||
//! `Formatter` returns an error. This is because, contrary to what the function
|
||||
//! signature might suggest, string formatting is an infallible operation.
|
||||
//! This function only returns a result because writing to the underlying stream
|
||||
//! might fail and it must provide a way to propagate the fact that an error has
|
||||
//! occurred back up the stack.
|
||||
//!
|
||||
//! An example of implementing the formatting traits would look
|
||||
//! like:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue