#proc-macro-attributes #macro-rules #proc-macro #decorator #attributes #macro-attributes

no-std optfield-lite

A macro to generate a new struct with fields wrapped in Option

1 unstable release

Uses new Rust 2024

new 0.1.0 Apr 1, 2025

#451 in Procedural macros

MIT license

5KB
57 lines

optfield-lite

GitHub License Crates.io Version Crates.io Total Downloads docs.rs free of syn

A macro to generate a new struct with fields wrapped in Option. Lite version of optfield.

Usage

Recommended to work with macro_rules_attr, which provides nice syntactic sugar:

use optfield_lite::optfield;
use macro_rules_attr::apply;

#[apply(optfield(OptTest))]
/// My test struct
struct Test {
    pub a: u32,
    b: u32,
}

This will generate a struct OptTest with the following fields:

/// My test struct
struct OptTest {
    pub a: Option<u32>,
    b: Option<u32>,
}

Note that the generated struct will have the same attributes and visibility as the original struct. You can also use it directly, which produces the same result:

use optfield_lite::optfield;

optfield! {
    /// My test struct
    struct Test {
        pub a: u32,
        b: u32,
    }(OptTest)
}

Comparison

No runtime deps