File tree 1 file changed +8
-2
lines changed
1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change 166
166
//!
167
167
//! Additionally, the return value of this function is `fmt::Result` which is a
168
168
//! typedef to `Result<(), std::fmt::Error>`. Formatting implementations should
169
- //! ensure that they return errors from `write!` correctly (propagating errors
170
- //! upward).
169
+ //! ensure that they propagate errors from the `Formatter` (e.g., when calling
170
+ //! `write!`) however, they should never return errors spuriously. That is, a
171
+ //! formatting implementation must and may only return an error if the passed-in
172
+ //! `Formatter` returns an error. This is because, contrary to what the function
173
+ //! signature might suggest, string formatting is an infallible operation.
174
+ //! This function only returns a result because writing to the underlying stream
175
+ //! might fail and it must provide a way to propagate the fact that an error has
176
+ //! 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