type to introspect for qualified symbols
tuple of "interesting" symbols, no duplicates
import std.typetuple : TypeTuple; struct A {} interface B {} alias Type = A[const(B[A*])]; // can't directly compare tuples thus comparing their string representation static assert (getSymbols!Type.stringof == TypeTuple!(A, B).stringof); static assert (getSymbols!int.stringof == TypeTuple!().stringof);
For a given type T finds all user-defined symbols it embeds.
Important property of such symbols is that they are likely to need an explicit import if used in some other scope / module.
Implementation is incomplete and tuned for REST interface generation needs.