1 个不稳定版本
0.0.1 | 2021年9月30日 |
---|
#47 在 #方便
每月 30 次下载
在 pinus 中使用
14KB
165 行
this-is-fine
☕🐕
用于处理 type Fine<T, E> = (T, Result<(), E>)
的实用工具。
它是 map 和 set 插入的有用返回类型。
API 主要是对 Result<T, E>
的移植。
安装
请使用 cargo-edit 以始终添加此库的最新版本
cargo add this-is-fine
示例
这是一个稍不完整的 API 预览。
use this_is_fine::{Fine, prelude::*};
let fine: Fine<_, ()> = ((), Ok(()));
fine.fine(); // Discard any error.
fine.not_fine(); // Convert to `Result`.
fine.ok(); // `.not_fine().ok()`
fine.err(); // `.1.err()`
fine.is_ok(); // `.1.is_ok()`
fine.is_err(); // `.1.is_err()`
fine.as_ref(); // Like `Result::as_ref`.
fine.map(|t| t); // Like `Result::map`.
fine.map_err(|e| e); // Like `Result::map_err`.
fine.expect("message"); // Like `.fine`, but can panic.
fine.unwrap(); // "
let mut fine = fine;
fine.as_mut(); // Like `Result::as_mut`.
// `Some` error is still fine.
let fine = this_is_fine::from_inverse(((), Some(())));
fine.expect_err("message");
fine.unwrap_err();
fine.fine();
// Twice as fine.
let fine_fine: Fine<Fine<_, ()>, ()> = (((), Ok(())), Ok(()));
fine_fine.transpose(); // Exchange `Result`s.
许可协议
在您选择的情况下,受以下任一协议的许可:
- Apache 许可协议,版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您提交的任何旨在包含在本作品中的贡献,根据 Apache-2.0 许可协议定义,应按上述方式双重许可,而无需任何额外的条款或条件。
有关更多信息,请参阅 CONTRIBUTING。
行为准则
变更日志
版本控制
this-is-fine
严格遵循 语义版本控制 2.0.0,但有以下例外:
- 在主要版本变更时,次要版本不会重置为 0(除了 v1)。
将其视为全局功能级别。 - 在主要版本或次要版本变更时,补丁版本不会重置为 0(除了 v0.1 和 v1)。
将其视为全局补丁级别。
这包括上述指定的 Rust 版本要求。
早期 Rust 版本可能兼容,但可能随着次要版本或补丁版本的发布而改变。
受功能和补丁影响的版本可以通过CHANGELOG.md中的相应标题确定。