7 个版本
0.1.13 | 2023年2月21日 |
---|---|
0.1.12 | 2022年1月21日 |
0.1.11 | 2021年9月29日 |
#1946 in 数据结构
每月下载量 882
用于 dynamodb-expression
16KB
158 行
lib.rs
:
处理可能为空的集合或其它(如 String
)的 Option
或 Result
的辅助函数。
示例
始终首先包含特性
use optempty::*;
以下示例仅展示了 Vec<T>
,但它们支持实现 IsEmpty
的任何类型。
empty_into_none
空 Vec
的 Some
变为 None
。
use optempty::*;
let some: Option<Vec<&str>> = Some(vec![]);
let none = some.empty_into_none();
assert_eq!(None, none);
非空 Vec
的 Some
保持不变。
#
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
空 Vec
的 Ok
变为 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);
非空 Vec
的 Ok
保持不变。
#
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);
更多示例请参阅
功能
可用的功能包括
querymap
serdejson
std
- 除了
alloc
中的类型外,还支持std::collections
中的类型。
- 除了
默认功能
std
依赖项
~0–255KB