3个版本 (破坏性更新)
0.3.0 | 2022年9月11日 |
---|---|
0.2.0 | 2022年9月6日 |
0.1.0 | 2022年8月29日 |
#10 in #named-fields
每月21次下载
用于 eiga
8KB
106 行
此包提供了一个推导宏,实现了builder lite模式。
由于此设计用于与eiga
一起使用,它做了一些假设
- 目标结构体有命名字段。
- 可选字段以
Option<...>
的形式编写。宏不会识别任何其他形式的Option
类型,例如std::option::Option
。 - 可选字段代表查询字符串参数。
示例
将#[derive(Builder)]
应用于
#[derive(Builder)]
struct Foo<'a> {
x: i32,
y: Option<&'a str>,
}
生成
impl<'a> Foo<'a> {
/// Constructs a new [`Foo`].
pub fn new(x: i32) -> Self {
Self {
x,
y: None,
}
}
/// Sets the y query string parameter.
pub fn y(mut self, y: &'a str) -> Self {
self.y = Some(y);
self
}
}
依赖关系
~1.5MB
~35K SLoC