- i was trying to do too much!
- the book keeps it to two colours
- it does not update inventory after each giveaway
- it does not implement a `User` struct
- "Simplicity is key." - DJ Khaled
- convert project to a library by moving program logic into lib.rs
- create ./tests to store integration tests
- create ./common to store code we want shared across integration tests
- create regular functions with various return types
- create test functions with various return types
- experiment with `cargo test`, `#[should_panic]`, `#[ignore]` and test modules
- replaced `match`s with `?`s where possible
- it should not be considered an improvement tho
- turns out `?` is best used when you are returning `Result<T,E>`s
- we were returning `String`s
- so we had to wrap all successful string returns in `Ok()`s
- which is just clunky
- good learning but its time to move on!
- finally get an error handling example running the way it should
- we've used the ugly method (a lot of matches and so on)
- and our code is not beautiful per se
- but it works
- next we improve this with `?`s