4个版本
0.0.4 | 2024年7月21日 |
---|---|
0.0.3 | 2024年7月21日 |
0.0.2 | 2024年5月18日 |
0.0.1 | 2023年1月14日 |
#1879 在 进程宏
每月 207 次下载
在 2 个Crates中使用(通过 good-ormning)
10KB
206 行
从另一个枚举的相同变体对派生枚举。
安装
cargo add samevariant
使用
定义一个枚举并使用此派生宏
#[samevariant(pub ABCSameVariant)]
pub enum ABC {
A,
B,
C(i32),
}
它生成一个看起来像的新枚举
enum ABCSameVariant<'l> {
Nonmatching(&'l ABC, &'l ABC),
A,
B,
C(&'l i32, &'l i32),
}
impl ABCSameVariant {
fn pairs<'l>(a: &'l ABC, b: &'l ABC) -> ABCSameVariant<'l> {
...
}
}
如果基本枚举有一个变体 Nonmatching
,它将用原始枚举名称作为前缀(如 ABCNonmatching
)。
仅支持简单和元组变体,类似于结构的变体将导致错误。
依赖关系
~10–21MB
~304K SLoC