19 个稳定版本
2.6.8 | 2023 年 2 月 11 日 |
---|---|
2.6.2 | 2023 年 2 月 10 日 |
2.5.0 | 2022 年 8 月 16 日 |
1.2.1 | 2022 年 8 月 6 日 |
0.1.1 | 2022 年 5 月 20 日 |
588 在 Rust 模式 中排名
165 每月下载量
在 kafkaesque 中使用
7KB
59 行
派生字段间的简单转换,这些字段主要是解包并将类似命名的字段从源转换为目标。示例用法
use namewise;
use std::collections::HashSet;
struct Source {
a: &'static str,
text: String,
numeric: i16,
truth: bool,
truths: Vec<bool>,
}
#[derive(namewise::From)]
#[namewise_from(from_type = "Source")]
struct Destination {
a: String,
text: String,
#[namewise_from(from_name = "numeric")]
number: i64,
#[namewise_from(collect)]
truths: HashSet<bool>,
}
这应该等同于
use std::collections::HashSet;
struct Source {
a: &'static str,
text: String,
numeric: i16,
truth: bool,
truths: Vec<bool>,
}
struct Destination {
a: String,
text: String,
number: i64,
truths: HashSet<bool>,
}
impl From<Source> for Destination {
fn from(value: Source) -> Destination {
Destination {
a: value.a.into(),
text: value.text.into(),
number: value.numeric.into(),
truths: value.truths.into_iter().collect(),
}
}
}
依赖项
~1.2–1.7MB
~35K SLoC