Задачи на обработку ошибок в Rust. Часть 3
Сделайте fn read_file_safe с Result.
Сделайте wrapper try_operation для логирования.
Используйте and_then / map для Result chain.
Сделайте custom ValidationError enum.
Сделайте fn parse_email с Result.
Сделайте error handling в async fn (concept).
Сделайте fn chain_operations с ?.
Сделайте wrapper type для Result (concept).
Комплексная задача с Result и match.
Объясните, когда использовать panic vs Result.