#struct-fields #struct #optional #field #options

optfield

一个生成具有可选字段的结构的宏

3 个版本 (重大更改)

0.3.0 2023 年 5 月 15 日
0.2.0 2021 年 5 月 6 日
0.1.0 2020 年 4 月 10 日

#80#optional

Download history 874/week @ 2024-03-13 990/week @ 2024-03-20 637/week @ 2024-03-27 676/week @ 2024-04-03 731/week @ 2024-04-10 414/week @ 2024-04-17 308/week @ 2024-04-24 424/week @ 2024-05-01 313/week @ 2024-05-08 285/week @ 2024-05-15 581/week @ 2024-05-22 473/week @ 2024-05-29 519/week @ 2024-06-05 316/week @ 2024-06-12 421/week @ 2024-06-19 379/week @ 2024-06-26

1,773 每月下载量
用于 2 crate

MIT/Apache

60KB
1.5K SLoC

optfield

crates.io Released API docs Minimum rustc version CI

optfield 是一个宏,给定一个结构体,它会生成另一个具有相同字段但用 Option<T> 包装的结构体。

最低 rustc 版本:1.56.0

安装

cargo add optfield

使用

optfield 以 opt 结构名称作为其第一个参数

use optfield::optfield;

#[optfield(Opt)]
struct MyStruct<T> {
    text: String,
    number: i32,
    generic: T,
}

这将生成另一个看起来像的结构体

struct Opt<T> {
    text: Option<String>,
    number: Option<i32>,
    generic: Option<T>,
}

optfield 支持定义可见性、文档、属性和合并方法。有关更多详细信息,请查看其 文档

许可

根据您的要求,受 Apache 许可证 2.0 版MIT 许可。

依赖关系

~300–760KB
~18K SLoC