通常、Result
オブジェクトを match
や unwrap
、ok
メソッドなどでハンドルすると、その Result
は消費されます(所有権が移動します)。
この振る舞いを防ぐには、as_ref や as_mut メソッドを使います。
as_ref
メソッドで取得した Result
オブジェクト経由で Ok
/Err
バリアントを参照すれば、それらのオブジェクトが消費されずに済みます。
let ok_opt = result.as_ref().ok(); // 借用 (borrow)
// ...
// ここでまだ result の Ok/Err は有効