You've met Option, the enum for 'maybe a value.' Its sibling is Result, the enum for 'maybe an error.' Meeting it now — as just another enum — makes the entire Error Handling track feel like home.
Result is Option's cousin
Result<T, E> has two variants: Ok(T) (success, carrying the value) and Err(E) (failure, carrying an error). Where Option says 'present or absent,' Result says 'succeeded or failed, and here's why it failed.' That extra E — the reason — is the whole difference.
You handle it the same way
Because it's an enum, you handle Result with the tools you just learned: match on Ok and Err, or if let Ok(v), or methods like unwrap_or. Anything that can fail — parsing a number, reading a file, opening a socket — returns a Result, and the compiler makes you confront the Err case.
Result), and failure flows through your code as an ordinary value you match on. You can't accidentally ignore an error you never see — the type is right there in the signature.The bridge to the next track
Returning Result everywhere could get verbose — match, match, match. The Error Handling track introduces the ? operator that makes error propagation a single character, plus how to define your own error types. You already understand the enum; now you'll learn to wield it ergonomically.