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

macro optfield

A macro that generates structs with optional fields

3 releases (breaking)

0.3.0 May 15, 2023
0.2.0 May 6, 2021
0.1.0 Apr 10, 2020

#78 in #optional

Download history 349/week @ 2024-07-22 402/week @ 2024-07-29 590/week @ 2024-08-05 690/week @ 2024-08-12 915/week @ 2024-08-19 1327/week @ 2024-08-26 1858/week @ 2024-09-02 3174/week @ 2024-09-09 2971/week @ 2024-09-16 3100/week @ 2024-09-23 3647/week @ 2024-09-30 8556/week @ 2024-10-07 9589/week @ 2024-10-14 10121/week @ 2024-10-21 9447/week @ 2024-10-28 5830/week @ 2024-11-04

35,330 downloads per month
Used in 4 crates (3 directly)

MIT/Apache

60KB
1.5K SLoC

optfield

crates.io Released API docs Minimum rustc version CI

optfield is a macro that, given a struct, generates another struct with the same fields, but wrapped in Option<T>.

Minimum rustc version: 1.56.0

Install

cargo add optfield

Use

optfield takes the opt struct name as its first argument:

use optfield::optfield;

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

This will generate another struct that looks like:

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

optfield supports defining visibility, documentation, attributes and merge methods. For more details and examples check its documentation.

License

Licensed under either of Apache License, Version 2.0 or MIT at your option.

Dependencies

~225–670KB
~16K SLoC