3 个版本 (破坏性更新)
0.3.0 | 2024年3月14日 |
---|---|
0.2.0 | 2024年3月14日 |
0.1.0 | 2023年2月26日 |
#1470 in Rust模式
11KB
152 行
constructor-lite
此crate提供用于从其字段生成结构体最小化构造函数的ConstructorLite
derive宏。
它主要用于无法使用Default
派生的结构体,因为这些字段没有实现它。
默认情况下,生成一个相关函数new()
,该函数期望每个不是Option<T>
的字段作为参数。
- 要为构造函数函数的预期参数添加可选字段,可以使用
#[constructor(required)]
进行标记。 - 要从构造函数函数中移除实现
Default
的非可选字段,可以使用#[constructor(default)]
进行标记。 - 要更改生成的函数名称,可以将结构体标记为例如
#[constructor(name = "function_name")]
。 - 默认情况下,生成的函数具有与结构体相同的可见性。要覆盖此行为,可以在结构体上标记,例如:
#[constructor(visibility = "pub(super)")]
。
对于更高级的使用,您可能更喜欢使用derive-new
或derive_builder
。
示例
use constructor_lite::ConstructorLite;
#[derive(Debug, PartialEq, ConstructorLite)]
struct Movie {
title: String,
year: Option<u16>,
}
assert_eq!(
Movie::new("Star Wars".to_owned()),
Movie { title: "Star Wars".to_owned(), year: None },
)
许可证
本项目受MIT许可证许可。
更多信息请见LICENSE。
依赖项
~0.6–1.1MB
~25K SLoC