Why Use Structured Errors in Rust Applications?