Some thoughts on how to handle errors in Rust