Getters/setters generator

Andrei Alexandrescu via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Dec 9 10:53:55 PST 2016


On 12/9/16 5:27 AM, Eugene Wissner wrote:
> Hello,
>
> we've just open sourced a small module ("accessors") that helps to
> generate getters and setters automatically:
> https://github.com/funkwerk/accessors
> http://code.dlang.org/packages/accessors
>
> It takes advantage of the UDAs and mixins. A simple example would be:
>
> import accessors;
>
> class WithAccessors
> {
>     @Read @Write
>     private int num_;
>
>     mixin(GenerateFieldAccessors);
> }
>
> It would generate 2 methods "num": one to set num_ and one to get its
> value. Of cause you can generate only @Read without @Write and vice
> versa. There are some more features, you can find the full documentation
> in the README.
> "GenerateFieldAccessors" mixin should be added into each class/struct
> that wants to use auto generated accessors.

Love it, and was toying with similar ideas too. One good extension is to 
add a predicate to the setter, which guards the assignment. -- Andrei


More information about the Digitalmars-d-announce mailing list