2 个版本
0.1.1 | 2024 年 4 月 22 日 |
---|---|
0.1.0 | 2024 年 4 月 21 日 |
#1400 在 编码
65 每月下载量
16KB
364 行
string-newtype:字符串类型的新类型习语助手
string-newtype
是一个辅助库,用于在类似于字符串的类型中使用新类型习语,包括新类型字符串切片。
使用方法
定义一个空的枚举作为你类型的标记,并基于它添加别名
// A marker type, can be anything.
enum S {}
// The newtype definitions.
// `StringBuf` acts as a `String`, while `StringRef` acts as a `str`.
type SBuf = StringBuf<S>;
type SRef = StringRef<S>;
// Define functions that only accept the newtype.
fn my_func(owned: SBuf, reference: &SRef) {
// ...
}
// Only the newtype can be passed to the function.
let s: SBuf = "hello".into();
my_func(s.clone(), &s);
该包还定义了 SmolStrBuf
和 SmolStrRef
类型,它们是 smol_str::SmolStr
的新类型。
功能
-
smol_str
启用smol_str::SmolStr
的新类型。 -
serde
启用序列化和反序列化实现。
开发 string-newtype
有关设置开发环境的说明,请参阅 DEVELOPMENT.md。
许可证
本项目采用 Apache 许可证 2.0 版 (LICENSE 或 http://www.apache.org/licenses/LICENSE-2.0)。
依赖项
~0.4–1MB
~20K SLoC