Tuple!(bool, "isRead", bool, "isWrite")
import std.typecons; struct S { int m; @property int rp() { return m; } @property void wp(int) { } @property int rwp() { return m; } @property void rwp(int) { } } static assert(!__traits(compiles, propertySemantics!(S, "na"))); static assert(!__traits(compiles, propertySemantics!(S, "m"))); static assert(propertySemantics!(S, "rp") == tuple!("canRead", "canWrite")(true, false)); static assert(propertySemantics!(S, "wp") == tuple!("canRead", "canWrite")(false, true)); static assert(propertySemantics!(S, "rwp") == tuple!("canRead", "canWrite")(true, true));
Tells you if a name is a read and/or write property