Стабилизированы Result::into_ok и Result::into_err
29.09.2026У Result появились методы into_ok и into_err: они достают значение из нужной ветки, паникуя на противоположной. Это аналог Option::unwrap, но без потери информации об ошибке в ветке Err.
Отличие от unwrap
Метод называется into_, а не unwrap_, не случайно. Разница в том, что произойдёт с ошибочной веткой: при unwrap текст ошибки попадёт в сообщение паники, а здесь её можно сначала преобразовать в строку — например, через Debug. Именно так его и применяют: result.into_ok().map_err(|e| format!("{e:?}"))? даст в панике читаемое сообщение вместо Debug-представления самого значения.
Запрос стабилизации сопровождался подборкой реального кода, который писали руками: meteroid, smartdns-rs, nostr, ngrok и octopii — во всех случаях требовалась своя функция с тем же смыслом.
Отслеживающий issue — rust-lang/rust#61695; автор — theemathas.
Оригинал
Stabilize Result::into_{ok,err}
Упоминаний: 1 · Просмотров: 4