Lymia/derive_setters

A procedural macro that automatically generates setter methods for a struct's fields.

Rust

34

68 commits

updated Jan 30, 2026

See the code

README

derive_setters

Latest Version Requires rustc 1.68+ Rust Documentation

Rust macro to automatically generates setter methods for a struct's fields. This can be used to add setters to a plain data struct, or to help in implementing builders.

For a related library that creates separate builder types, see rust-derive-builder.

Basic example

use derive_setters::*;

#[derive(Default, Setters, Debug, PartialEq, Eq)]
struct BasicStruct {
    #[setters(rename = "test")]
    a: u32,
    b: u32,
    c: u32,
}

assert_eq!(
    BasicStruct::default().test(30).b(10).c(20),
    BasicStruct { a: 30, b: 10, c: 20 },
);

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in enumset by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

builder-pattern
procedural-macros
rust

Lymia/derive_setters

A procedural macro that automatically generates setter methods for a struct's fields.

Rust

34

68 commits

updated Jan 30, 2026

See the code

README

derive_setters

Latest Version Requires rustc 1.68+ Rust Documentation

Rust macro to automatically generates setter methods for a struct's fields. This can be used to add setters to a plain data struct, or to help in implementing builders.

For a related library that creates separate builder types, see rust-derive-builder.

Basic example

use derive_setters::*;

#[derive(Default, Setters, Debug, PartialEq, Eq)]
struct BasicStruct {
    #[setters(rename = "test")]
    a: u32,
    b: u32,
    c: u32,
}

assert_eq!(
    BasicStruct::default().test(30).b(10).c(20),
    BasicStruct { a: 30, b: 10, c: 20 },
);

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in enumset by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

builder-pattern
procedural-macros
rust

Project health

Overall

2.9/10

Maintained

0/10

Code review

1/10
OpenSSF Scorecard

Latest release

0.1.9 · Jan 30, 2026

Releases this year

1

Significant stargazers

cyqsimon

24 followers · starred Oct 2025