У необязательного значения появилась вставка с возможностью отказа

31.01.2026

У необязательного значения появился метод, который заполняет его только в том случае, если вычисление значения успешно. При неудаче исходное состояние сохраняется.

Какая была запись

Разбор конфигурации: взять необязательное поле, если его нет — вычислить значение, вычисление может провалиться. Шаблон «получи или вставь» с вычислением подходит, но он требует, чтобы вычисление вернуло само значение, а не ошибку.

Чтобы вычислить с ошибкой, нужен отдельный путь: взять значение или вычислить, и если вычисление провалилось — вернуть ошибку наружу, не затрагивая исходное место.

Что даёт метод

Получатель и вычислитель в одной операции, где вычислитель может отказаться. Отказ означает, что место осталось пустым, а не что записалось частичное значение.

Это отличается от обычного получения с вычислением, где вычислитель обязан что-то вернуть — и ошибка выражается особым значением внутри.

Оригинал

Implementation for rust-lang/rust#143648

Упоминаний: 1 · Просмотров: 2