Ошибки служат вызывающему коду и операторам
Типизированный enum позволяет вызывающему коду обрабатывать ожидаемые категории без разбора человеческого текста. `Display` остаётся описанием для оператора, а `std::error::Error` поддерживает обобщённые границы и необязательную цепочку источников.