#byte-vector #string #utf-8 #byte #container

maybe-string

提供一个新类型包装器,表示可能为有效UTF-8字符串的字节向量

1 个不稳定版本

0.1.0 2021年2月25日

#2326数据结构

每月21次下载
用于 4 个crate(2 个直接使用)

MIT 许可证

11KB
157

Latest Version Documentation License

提供新类型包装器 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