#fallback #combinator #result #alternative

fallback-if

根据某些谓词回退到替代方案

2个稳定版本

1.0.1 2024年5月15日

Rust模式中排名#511

每月下载量:21次

Apache-2.0 OR MIT

9KB
106

fallback-if

在初始结果被认为是失败且谓词评估为真时,回退到替代方案。

示例

fn main() {
    struct Config {
        fallback_to_local: bool,
    }

    #[derive(Debug, PartialEq)]
    struct Manifest;

    impl Manifest {
        pub fn try_fetch_remote() -> Result<Self, ()> {
            // Oh noes! failed to fetch manifest remotely
            Err(())
        }

        pub fn try_fetch_local() -> Result<Self, ()> {
            // Yesss! Fetched locally!
            Ok(Manifest)
        }
    }

    let config = Config { fallback_to_local: true };
    let result = Manifest::try_fetch_remote();

    let outcome = result.fallback_if(config.fallback_to_local, || {
        Manifest::try_fetch_local()
    });

    assert_eq!(outcome, Ok(Manifest))
}

许可证

许可协议如下

供您选择。

贡献

除非您明确声明,否则您有意提交的任何贡献,根据Apache-2.0许可证定义,应按上述方式许可,不附加任何额外条款或条件。

无运行时依赖