1 个稳定版本

1.0.1 2022 年 7 月 30 日

#2550Rust 模式

MIT/Apache

4KB

Rewrap

你是否想过将 Result<Result<T, E>, F> 转换为 Result<T, F>? 不是吗?无论如何...

安装

cargo add rewrap

用法

use rewrap::Rewrap;
use thiserror::Error;

#[derive(Error, Debug)]
enum OriginalError {}

#[derive(Error, Debug)]
enum TargetError {
    #[error(transparent)]
    Original(#[from] OriginalError)
}

fn main() {
    let result: Result<(), TargetError> = Ok(());
    let result_of_result: Result<Result<(), TargetError>, OriginalError> = Ok(result);
    let rewrapped_result: Result<(), TargetError> = result_of_result.rewrap();
    let unwrapped_result: () = rewrapped_result.unwrap();
}

无运行时依赖