bool 型から Option 型への変換。

仕様

以下の関数を使うと、if 式での分岐が不要になる。

then_some

false なら None へ、true なら Some でラップした指定値へ、それぞれ変換する。

then

then_some とほぼ同じだが、指定値の生成にクロージャを使用する。

サンプル

以下では、空文字列を None に変換している。


fn main() {
    assert_eq!(get_some_text(""), None);
    assert_eq!(get_some_text("test"), Some("test"));
}

fn get_some_text(text: &str) -> Option<&str> {
    (!text.is_empty()).then_some(text)
}