6 个版本
0.3.2 | 2022 年 12 月 11 日 |
---|---|
0.3.1 |
|
0.3.0 | 2021 年 11 月 4 日 |
0.2.3 | 2020 年 6 月 19 日 |
在 Rust 模式 中排名第 540
每月下载量 33,404
在 19 个 包中使用 (直接使用 7 个)
6KB
Rust 的值结构派生宏,用于支持新类型模式
动机
一个非常简单的派生宏,用于支持强类型系统和 新类型模式。新类型是一种零成本抽象:它们为现有类型引入了一个新的、独特的名称,在两种类型之间转换时没有运行时开销。这与 Haskell 的 newtype 关键字 类似。
例如
#[derive(ValueStruct)]
struct UserId(String);
let uid : UserId = "my-uid".into();
宏概述
ValueStruct
会为您自动生成
std::convert::From<>
实例,以帮助您创建结构体。ValueStruct::value()
函数实现,以便直接访问字段而不使用 .0。
对不同字段类型有不同的行为
- 对于
std::string::String
,它会生成From<String>
、From<&String>
、From<&str>
使用方法
将以下内容添加到您的 Cargo.toml
[dependencies]
rvstruct = "0.3"
// Import it
use rvstruct::ValueStruct;
// And use it on your structs
#[derive(ValueStruct)]
struct UserId(String);
许可证
Apache 软件许可证 (ASL)
作者
Abdulla Abdurakhmanov
依赖项
~1.5MB
~35K SLoC