File tree 1 file changed +9
-3
lines changed
1 file changed +9
-3
lines changed Original file line number Diff line number Diff line change 165
165
//! provides some helper methods.
166
166
//!
167
167
//! Additionally, the return value of this function is `fmt::Result` which is a
168
- //! typedef to `Result<(), std::io::Error>` (also known as `std::io::Result<()>`).
169
- //! Formatting implementations should ensure that they return errors from `write!`
170
- //! correctly (propagating errors upward).
168
+ //! type alias of `Result<(), std::fmt::Error>`. Formatting implementations
169
+ //! should ensure that they propagate errors from the `Formatter` (e.g., when
170
+ //! calling `write!`) however, they should never return errors spuriously. That
171
+ //! is, a formatting implementation must and may only return an error if the
172
+ //! passed-in `Formatter` returns an error. This is because, contrary to what
173
+ //! the function signature might suggest, string formatting is an infallible
174
+ //! operation. This function only returns a result because writing to the
175
+ //! underlying stream might fail and it must provide a way to propagate the fact
176
+ //! that an error has occurred back up the stack.
171
177
//!
172
178
//! An example of implementing the formatting traits would look
173
179
//! like:
You can’t perform that action at this time.
0 commit comments