Option
論理演算系
pub fn and<U>(self, optb: Option<U>) -> Option<U>
pub fn or(self, optb: Option<T>) -> Option<T>
pub fn xor(self, optb: Option<T>) -> Option<T>
Some(v)をtrue、Noneをfalseとして、selfとoptbを各演算子で短絡評価ありで評価した結果を返すイメージ
pub fn and_then<U, F>(self, f: F) -> Option<U>
where
    F: FnOnce(T) -> Option<U>,
pub fn or_else<F>(self, f: F) -> Option<T>
where
    F: FnOnce() -> Option<T>,
selfとf()を各演算子で短絡評価ありで評価した結果を返すイメージ
map系
pub fn map<U, F>(self, f: F) -> Option<U>
where
    F: FnOnce(T) -> U,
 | Some(v) | None | 
|---|
| map | Some(f(v)) | None | 
map_or系
pub fn map_or<U, F>(self, default: U, f: F) -> U
where
    F: FnOnce(T) -> U,
pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
where
    D: FnOnce() -> U,
    F: FnOnce(T) -> U,
- 戻り値の型は
Option<U>ではなくU - Noneの場合はdefaultの値を返す
 - Someの場合は中身をmapしてそのまま返す
 
 | Some(v) | None | 
|---|
| map_or | f(v) | default | 
| map_or_else | f(v) | default() | 
ok系
pub fn ok_or<E>(self, err: E) -> Result<T, E>
pub fn ok_or_else<E, F>(self, err: F) -> Result<T, E>
where
    F: FnOnce() -> E,
 | Some(v) | None | 
|---|
| ok_or | Ok(v) | Err(err) | 
| ok_or_else | Ok(v) | Err(err()) | 
transpose
impl<T, E> Option<Result<T, E>>
pub fn transpose(self) -> Result<Option<T>, E>
Option<Result<T, E>> → Result<Option<T>, E>の変換
self | 変換後 | 
|---|
None | Ok(None) | 
Some(Ok(v)) | Ok(Some(v)) | 
Some(Err(err)) | Ok(Err(err)) | 
Result
論理演算系
pub fn and<U>(self, res: Result<U, E>) -> Result<U, E>
pub fn or<F>(self, res: Result<T, F>) -> Result<T, F>
Ok(v)をtrue、Err(err)をfalseとして、selfとresを各演算子で短絡評価ありで評価した結果を返すイメージ
pub fn and_then<U, F>(self, op: F) -> Result<U, E>
where
    F: FnOnce(T) -> Result<U, E>,
pub fn or_else<F, O>(self, op: O) -> Result<T, F>
where
    O: FnOnce(E) -> Result<T, F>,
selfとop()を各演算子で短絡評価ありで評価した結果を返すイメージ
map系
pub fn map<U, F>(self, op: F) -> Result<U, E>
where
    F: FnOnce(T) -> U,
pub fn map_err<F, O>(self, op: O) -> Result<T, F>
where
    O: FnOnce(E) -> F,
- Ok(v)とErr(err)の中身をそれぞれmapする
 
 | Ok(v) | Err(err) | 
|---|
| map | Ok(op(v)) | Err(err) | 
| map_err | Ok(v) | Err(op(err)) | 
map_or系
pub fn map_or<U, F>(self, default: U, f: F) -> U
where
    F: FnOnce(T) -> U,
pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
where
    D: FnOnce(E) -> U,
    F: FnOnce(T) -> U,
- 戻り値の型は
Result<U, E>ではなくU - Errの場合はdefaultの値を返す
 - Okの場合は中身をmapしてそのまま返す
 
 | Ok(v) | Err(err) | 
|---|
| map_or | op(v) | default | 
| map_or_else | op(v) | default() | 
transpose
impl<T, E> Result<Option<T>, E>
pub fn transpose(self) -> Option<Result<T, E>>
Result<Option<T>, E> → Option<Result<T, E>>の変換
self | 変換後 | 
|---|
Ok(None) | None | 
Ok(Some(v)) | Some(Ok(v)) | 
Err(err) | Some(Err(err)) |