On Friday, 6 April 2018 at 02:20:29 UTC, Kayomn wrote:
Wrong example code, here's the correct example:
--------------------------------------------------------------------------------
switch (queryString(childJson,"type")) {
case (typeof (Sprite).name):
child = this.addChild!(Sprite)(childName);
break;
case (typeof (Camera).name):
child = this.addChild!(Camera)(childName);
break;
default:
child = this.addChild!(Node)(childName);
break;
}
--------------------------------------------------------------------------------
Ok, first of all, I'm not sure about the question, because of the
following:
Does the default case handle an unspecified class or does it
handle a class which is specified, but is not mentioned in any of
previous cases?
Or does the default case handle both of these circumstances?
Without a master list this play an important role, I think.
Another information shortage is: are the tags exclusive or not?
So, is it possible that a class has more then one tag (still
being unique (tuple))?
Besides this, I tried something with types used as user defined
attributes.
https://dlang.org/spec/attribute.html#uda
Automatic compile time tagging is not my speciality, however, I
think is also achievable with mixins somehow?
But I don't know how to workaround the bug
https://issues.dlang.org/show_bug.cgi?id=18718
at this moment...
https://run.dlang.io/is/DmBhO5