[x] Slides: Using macros, e.g. to derive traits #25
Also, why is println! a macro?
Exercise: Errors in SimpleDB - using thiserror to make more beautiful Errors in SimpleDB
Day 1, Session 3
[x] Slides: Defining and Implementing Traits #27
Exercise: Shapes II - defining a 'HasArea' trait (or similar) and implementing it for your types
Day 2, Session 1
[x] Slides: I/O in Rust #28
[x] Slides: Cargo Workspaces #29
Exercise: Connected Mailbox - taking a TCP Server skeleton and connecting it to SimpleDB to respond to requests over the network. Requires understanding std::io::Read and std::io::Write.
Day 2, Session 2
[x] Slides: Generics #30
[x] Slides: Lifetimes #31
Exercise: Shapes III - making your shapes generic over some numeric type T
Day 2, Session 3
[ ] Slides: Closures #32
Exercise: Closures - need something about closures. The motivating example is "I want to filter my collection for values larger than X, where X is something I choose at run-time", and observing that passing in a function for the '.filter()' method won't let you pass in X. But a closure lets you capture X.
New Syllabus
Day 1, Session 1
Day 1, Session 2
Day 1, Session 3
Day 2, Session 1
Day 2, Session 2
Day 2, Session 3
Day 3, Session 1
Day 3, Session 2
Day 3, Session 3