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