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