discretionary

Crates.iodiscretionary
lib.rsdiscretionary
version0.1.0
sourcesrc
created_at2021-12-26 20:16:25.78847
updated_at2021-12-26 20:16:25.78847
descriptionA tiny procedural macro to make all your struct fields optional
homepagehttps://github.com/dfm/discretionary
repositoryhttps://github.com/dfm/discretionary.git
max_upload_size
id503439
size16,701
Dan Foreman-Mackey (dfm)

documentation

https://docs.rs/discretionary

README

Discretionary

status version

A tiny procedural macro to make all your struct fields optional. For now, this package is essentially trivial, although it might be useful if you have some huge struct that needs to have all its field types converted from T to Option<T>. (I needed that and now this exists!)

Usage

Add discretionary as a dependency in your Cargo.toml:

[dependencies]
discretionary = "0.1"

Then decorate your struct with the #[make_optional] macro. That's it!

For example, the following

use discretionary::make_optional;

#[make_optional]
struct ExampleStruct {
    id: usize,
    name: String,
}

will be re-written to something like

struct ExampleStruct {
    id: Option<usize>,
    name: Option<String>,
}
Commit count: 6

cargo fmt