bool::then_some

Changes in new versions / 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());   // a value always went through a closure

// *** in version 1.62: ***
let value = ready.then_some(name);      // a ready value needs no closure
let lazy = ready.then(|| expensive());  // a closure where the work is costly