mirror v0.0.4 (2019-10-18T16:37:39Z)
Dub
Repo
RecursiveFieldTypes
mirror
traits
Returns an AliasSeq of all field types of
T
, depth-first recursively.
template
RecursiveFieldTypes (
T
) {
import
mirror
.
meta
:
PublicMembers
;
;
import
mirror
.
traits
:
isStruct
,
isClass
;
;
import
std
.
meta
:
staticMap
,
AliasSeq
,
NoDuplicates
,
Filter
,
templateNot
;
;
eponymoustemplate
isStructOrClass
(U)
;
alias
RecursiveFieldTypes
=
NoDuplicates
!(
staticMap
!(
recurse
,
types
))
;
alias
RecursiveFieldTypes
=
T
;
}
Members
Aliases
RecursiveFieldTypes
alias
RecursiveFieldTypes
=
T
Undocumented in source.
RecursiveFieldTypes
alias
RecursiveFieldTypes
=
NoDuplicates
!(
staticMap
!(
recurse
,
types
))
Undocumented in source.
Enums
isStructOrClass
eponymoustemplate
isStructOrClass
(U)
Undocumented in source.
Meta
Source
See Implementation
mirror
traits
enums
isClass
isEnum
isInterface
isOOP
isStruct
templates
FundamentalType
RecursiveFieldTypes
isPrivate
moduleOf
Returns an AliasSeq of all field types of T, depth-first recursively.