2个版本
0.1.1 | 2023年4月11日 |
---|---|
0.1.0 | 2023年4月11日 |
#78 在 #required
2,312 每月下载次数
在 3 个crate中使用 (通过 tokio-openai)
11KB
185 行
derive-build
Rust中的意见派构建宏
#[derive(Default, Build, Eq, PartialEq, Debug)]
struct Request {
#[required]
url: String,
path: Option<String>,
messages: Vec<String>,
}
fn main() {
let request = Request::new("example.com")
.path("tester")
.message("hello")
.message("goodbye");
let expected = Request {
url: "example.com".to_string(),
path: Some("tester".to_string()),
messages: vec!["hello".to_string(), "goodbye".to_string()],
};
assert_eq!(request, expected);
}
功能
- 必需字段
- 可选字段
- 可选字段的默认值
- 必需字段的默认值(代替选项)
- 支持
Option<T>
字段 - 支持
Vec<T>
字段 - 支持
Cow<'a, T>
字段 - 支持引用字段 (
&'a T
) - 自动
Into<T>
转换 - 自动字段名称单数化
- 支持
HashMap<K, V>
字段 - 支持
HashSet<T>
字段 - 支持
BTreeMap<K, V>
字段 - 支持
BTreeSet<T>
字段 - 支持
Box<T>
字段 - 支持
Rc<T>
字段 - 支持
Arc<T>
字段 - 支持整型
依赖
~0.4–0.9MB
~19K SLoC