Изменения в новых версиях / Rust 1.62

let ready = true;
let name = String::from("prod");

// *** before: ***
let value = if ready { Some(name) } else { None };
let lazy = ready.then(|| name.len());   // значение всегда через замыкание

// *** in version 1.62: ***
let value = ready.then_some(name);      // готовое значение - без замыкания
let lazy = ready.then(|| expensive());  // замыкание там, где счёт дорогой