setter

Generates mixin for automatic property injection. All properties are created as public final @property.

Important! If symbol with same name, as property going to be, is present then D will completely override property with that symbol

  1. mixintemplate setter(alias symbol, string prefixRem = "_", string prefixAdd = "")
    mixin template setter (
    alias symbol
    string prefixRem = "_"
    string prefixAdd = ""
    )
  2. mixintemplate setter(alias symbol, string symbolRename, bool B)

Examples

// Generates property for "_data" with name "data"
mixin property!_data;
// Generates only getter for "_data" with name "data"
mixin getter!_data;
// Generates only setter for "_data" with name "data"
mixin setter!_data;

// Prefix manipulation, works with getter! and setter! too
// _data -> data (removes "_" prefix, default behaviour)
mixin property!_data;
// __data -> data (removes supplied prefix)
mixin property!(__data, "__");
// __data -> gdata (replaces supplied prefix)
mixin property!(__data, "__", "g");
// _data -> c_data (adds new prefix)
mixin property!(_data, "", "c");
// _data -> _data (can't match prefix, keeping as is)
mixin property!(_data, "A");
mixin property!(_data, "A", "B");
// _data -> propertyData (replaces entire name)
mixin property!(_data, "propertyData", true);

Meta