#empty #collection #hash-map #vec #options #serde-json

no-std optempty

用于处理可能为空的类型(例如空 StringVecHashMap 等)的工具。

7 个版本

0.1.13 2023年2月21日
0.1.12 2022年1月21日
0.1.11 2021年9月29日

#1946 in 数据结构

Download history • Rust 包仓库 230/week @ 2024-03-13 • Rust 包仓库 184/week @ 2024-03-20 • Rust 包仓库 264/week @ 2024-03-27 • Rust 包仓库 263/week @ 2024-04-03 • Rust 包仓库 210/week @ 2024-04-10 • Rust 包仓库 76/week @ 2024-04-17 • Rust 包仓库 132/week @ 2024-04-24 • Rust 包仓库 164/week @ 2024-05-01 • Rust 包仓库 136/week @ 2024-05-08 • Rust 包仓库 78/week @ 2024-05-15 • Rust 包仓库 251/week @ 2024-05-22 • Rust 包仓库 175/week @ 2024-05-29 • Rust 包仓库 229/week @ 2024-06-05 • Rust 包仓库 284/week @ 2024-06-12 • Rust 包仓库 249/week @ 2024-06-19 • Rust 包仓库 106/week @ 2024-06-26 • Rust 包仓库

每月下载量 882
用于 dynamodb-expression

Apache-2.0

16KB
158

Crates.io Docs.rs


lib.rs:

处理可能为空的集合或其它(如 String)的 OptionResult 的辅助函数。

示例

始终首先包含特性

use optempty::*;

以下示例仅展示了 Vec<T>,但它们支持实现 IsEmpty 的任何类型。

empty_into_none

VecSome 变为 None

use optempty::*;

let some: Option<Vec<&str>> = Some(vec![]);
let none = some.empty_into_none();
assert_eq!(None, none);

非空 VecSome 保持不变。

#
let some = Some(vec!["a", "b", "c"]);
let still_some = some.clone().empty_into_none();
assert_eq!(some, still_some);

None 保持不变。

#
let none: Option<Vec<&str>> = None;
let still_none = none.empty_into_none();
assert_eq!(None, still_none);

empty_into_err

VecOk 变为 Err

use optempty::*;

let ok: Result<Vec<&str>, &str> = Ok(vec![]);
let err = ok.empty_into_err(|| "was empty");
assert_eq!(Err("was empty"), err);

非空 VecOk 保持不变。

#
let ok = Ok(vec!["a", "b", "c"]);
let still_ok = ok.empty_into_err(|| "was empty");
assert_eq!(Ok(vec!["a", "b", "c"]), still_ok);

Err 保持不变。

#
let err: Result<Vec<&str>, &str> = Err("failed");
let still_err = err.empty_into_err(|| "was empty");
assert_eq!(Err("failed"), still_err);

更多示例请参阅

功能

可用的功能包括

默认功能

  • std

依赖项

~0–255KB