1 个不稳定版本
0.1.0 | 2021年2月25日 |
---|
#2326 在 数据结构
每月21次下载
用于 4 个crate(2 个直接使用)
11KB
157 行
提供新类型包装器 MaybeString
及其切片对应物 MaybeStr
,表示可能为有效UTF-8字符串的字节向量。
当处理可能为有效UTF-8字符串的数据时,这些包装器非常有用,您想延迟或条件性地跳过其转换为字符串的过程。
它们对于调试可能以字符串形式显示的数据也很有用。当包装的字节向量是有效的UTF-8字符串时,Debug
输出将提供字符串表示形式。
使用示例
调试字节向量
use maybe_string::MaybeString;
// invalid UTF-8 bytes
let ms = MaybeString(vec![0, 159, 146, 150]);
assert_eq!(&format!("{:?}", ms), "[00, 9f, 92, 96]");
// valid UTF-8 bytes
let ms = MaybeString(vec![240, 159, 146, 150]);
assert_eq!(&format!("{:?}", ms), "\"💖\"");
转换为字符串
use maybe_string::MaybeString;
// invalid UTF-8 bytes
let ms = MaybeString(vec![0, 159, 146, 150]);
assert_eq!(ms.into_string(), Err(vec![0, 159, 146, 150]));
// valid UTF-8 bytes
let ms = MaybeString(vec![240, 159, 146, 150]);
assert_eq!(ms.into_string(), Ok("💖".to_string()));
依赖项
~175KB