#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 • Rust 包仓库 874/week @ 2024-03-13 • Rust 包仓库 990/week @ 2024-03-20 • Rust 包仓库 637/week @ 2024-03-27 • Rust 包仓库 676/week @ 2024-04-03 • Rust 包仓库 731/week @ 2024-04-10 • Rust 包仓库 414/week @ 2024-04-17 • Rust 包仓库 308/week @ 2024-04-24 • Rust 包仓库 424/week @ 2024-05-01 • Rust 包仓库 313/week @ 2024-05-08 • Rust 包仓库 285/week @ 2024-05-15 • Rust 包仓库 581/week @ 2024-05-22 • Rust 包仓库 473/week @ 2024-05-29 • Rust 包仓库 519/week @ 2024-06-05 • Rust 包仓库 316/week @ 2024-06-12 • Rust 包仓库 421/week @ 2024-06-19 • Rust 包仓库 379/week @ 2024-06-26 • Rust 包仓库

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