Testcase: List
Implementing fmt::Display
for a structure where the elements must each be
handled sequentially is tricky. The problem is that each write!
generates a
fmt::Result
. Proper handling of this requires dealing with all the
results. Rust provides the ?
operator for exactly this purpose.
Using ?
on write!
looks like this:
// Try `write!` to see if it errors. If it errors, return
// the error. Otherwise continue.
write!(f, "{}", value)?;
With ?
available, implementing fmt::Display
for a Vec
is
straightforward:
Activity
Try changing the program so that the index of each element in the vector is also printed. The new output should look like this:
[0: 1, 1: 2, 2: 3]