業務でRustを書いている時に受けた質問を元に一記事書きます。 Rustを書いているとたまにイテレータのmapメソッドの中でResult型の値を返したい時があります。 例えば以下のようなコード fn i32_to_u16(x: Option<i32>) -> anyhow::Result<Option<u16>> { x.map(|x| x.try_into().with_context(|| "変換エラー")) } このコード自体はコンパイルエラーになりますがやりたいことは分かるかと思います。 i32型の取り得る値は-2,147,483,648~2,147,483,647の範囲、u16型の取…