У необязательного значения появилась вставка с возможностью отказа
31.01.2026У необязательного значения появился метод, который заполняет его только в том случае, если вычисление значения успешно. При неудаче исходное состояние сохраняется.
Какая была запись
Разбор конфигурации: взять необязательное поле, если его нет — вычислить значение, вычисление может провалиться. Шаблон «получи или вставь» с вычислением подходит, но он требует, чтобы вычисление вернуло само значение, а не ошибку.
Чтобы вычислить с ошибкой, нужен отдельный путь: взять значение или вычислить, и если вычисление провалилось — вернуть ошибку наружу, не затрагивая исходное место.
Что даёт метод
Получатель и вычислитель в одной операции, где вычислитель может отказаться. Отказ означает, что место осталось пустым, а не что записалось частичное значение.
Это отличается от обычного получения с вычислением, где вычислитель обязан что-то вернуть — и ошибка выражается особым значением внутри.
Оригинал
Implementation for rust-lang/rust#143648
Упоминаний: 1 · Просмотров: 2