Reflecting on a module
Adam D. Ruppe
destructionator at gmail.com
Wed Nov 6 18:02:29 PST 2013
On Thursday, 7 November 2013 at 01:37:24 UTC, Shammah Chancellor
wrote:
> How does one reflect on all the classes in a module?
__traits(allMembers, your_module)
There's two easy ways to get your_module: __traits(parent,
some_top_level_symbol0 or mixin("module.name.here");
allMembers gives a list of strings, which are the names of
everything. Then you do __traits(getMember, your_module, name) in
the loop to get it and see if it is a class.
If you need more details, I can write a sample function too. I
used this technique in my terminal emulator utility module:
https://github.com/adamdruppe/terminal-emulator/blob/master/utility.d
check the main function there. Here, I look for functions marked
export, but looking for classes and UDAs isn't much different.
static if(is(T == class)), __traits(getAttributes), etc instead
of getProtection.
More information about the Digitalmars-d-learn
mailing list