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

Reply via email to