2 个不稳定版本
0.2.0 | 2024年1月21日 |
---|---|
0.1.0 | 2024年1月20日 |
2191 在 Rust 模式
每月 39 次下载
3KB
auto-builder
此 crate 提供了一个 derive 宏,用于为任何结构体实现构建器模式。
#[derive(Builder)]
struct Foo {
a: i32,
b: Option<i32>,
}
let foo = FooBuilder::new().a(1).b(Some(2)).build();
assert!(foo.is_ok());
lib.rs
:
此 crate 提供了一个 derive 宏,用于为任何结构体实现 构建器模式。
为名为 Foo
的结构体推导出 Builder
宏将生成一个名为 FooBuilder
的构建器结构体,其中包含用于设置 Foo
中每个字段的方法,以及一个用于从构建器创建 Foo
的 build
方法。如果任何字段未设置,则 build
方法将失败。它返回一个 Result<Foo, String>
,其中 String
是一个指示哪些字段未设置的错误消息。
示例
use auto_builder::Builder;
#[derive(Builder)]
struct Foo {
bar: i32,
baz: String,
}
let complete_foo = FooBuilder::new().bar(42).baz("hello".to_string()).build()
let incomplete_foo = FooBuilder::new().bar(42).build();
assert!(complete_foo.is_ok());
assert!(incomplete_foo.is_err());
依赖关系
~305–760KB
~18K SLoC