Discrepancy between example in 5.14 and solution
Author: ericzundelCreated Feb 1, 2025Updated Jan 20, 2026
This isn't really a bug, but both my partner and I learning Rust felt that 5.14 was a beast! I had to cheat and look at the solution. My partner used an LLM and got an answer very much unlike what we had learned to date.
I was confused by something I saw in the solution brand. The example for how to use #from in 5.14 reads as follows:
#[derive(Error, Debug)]
pub enum MyError {
#[error("Failed to connect to the database")]
DatabaseError {
#[from]
inner: std::io::Error
}
}Note that the syntax in the example uses the structure form of associating data with the enum But in the solution, Database Error uses parens
[derive(Debug, thiserror::Error)]
pub enum TicketNewError {
...
#[error("{0}")]
InvalidStatus(#[from] ParseStatusError),
}Tuples or tuple like syntax is covered in the Nullability lesson 5.5 , but never used in an exercise before this one. Tricky!
Source: mainmatter/100-exercises-to-learn-rust