mirror.meta.traits

Information about types and symbols at compile-time, similar to std.traits.

Members

Aliases

RecursiveFieldTypes
alias RecursiveFieldTypes(T) = RecursiveFieldTypesImpl!T

Returns an AliasSeq of all field types of T, depth-first recursively.

Enums

BinOpDir
enum BinOpDir
Undocumented in source.
isClass
eponymoustemplate isClass(T)

Usable as a predicate to std.meta.Filter

isEnum
eponymoustemplate isEnum(T)

Usable as a predicate to std.meta.Filter

isInterface
eponymoustemplate isInterface(T)

Usable as a predicate to std.meta.Filter

isOOP
eponymoustemplate isOOP(alias T)

If a type is a class or an interface. Usable as a predicate to std.meta.Filter

isStruct
eponymoustemplate isStruct(T)

Usable as a predicate to std.meta.Filter

isUnion
eponymoustemplate isUnion(T)

Usable as a predicate to std.meta.Filter

Functions

add
int add()
Undocumented in source. Be warned that the author may not have intended to support it.
functionName
string functionName(BinOpDir dir)
Undocumented in source. Be warned that the author may not have intended to support it.

Structs

BinaryOperator
struct BinaryOperator
Undocumented in source.

Templates

AssignOperators
template AssignOperators(T)
Undocumented in source.
BinaryOperators
template BinaryOperators(T)

An AliasSeq of BinaryOperator structs for type T, one for each binary operator.

Field
template Field(F, string id, Protection prot = Protection.public_)

A field of a struct, union, or class

Fields
template Fields(T)

The fields of a struct, union, or class

FundamentalType
template FundamentalType(T)

Retrieves the "fundamental type" of a type T. For most types, this will be exactly the same as T itself. For arrays or pointers, it removes as many "layers" of array or pointer indirections to get to the most basic atomic type possible. Examples of inputs and outputs:

MemberFromName
template MemberFromName(alias parent, string name)
Undocumented in source.
MemberFunctionsByOverload
template MemberFunctionsByOverload(T)

All member function symbols in T with overloads represented separately.

NumDefaultParameters
template NumDefaultParameters(A...)
Undocumented in source.
NumRequiredParameters
template NumRequiredParameters(A...)
Undocumented in source.
Parameter
template Parameter(T, alias D, string I, std.traits.ParameterStorageClass sc = std.traits.ParameterStorageClass.none)

Information on a function's parameter

Parameters
template Parameters(alias F)

AliasSeq of Parameter templates with all information on function F's parameters.

PublicFieldNames
template PublicFieldNames(T)
Undocumented in source.
PublicMembers
template PublicMembers(alias A)
Undocumented in source.
RecursiveTypeTree
template RecursiveTypeTree(T...)

An std.meta.AliasSeq of T and all its recursive subtypes.

UnaryOperators
template UnaryOperators(T)
Undocumented in source.
isMutableSymbol
template isMutableSymbol(alias symbol)
Undocumented in source.
isParameter
template isParameter(alias T)

If the passed in template T is Parameter

isPrivate
template isPrivate(alias symbol)
Undocumented in source.
isProperty
template isProperty(alias F)

Whether or not F is a property function

isStaticMemberFunction
template isStaticMemberFunction(alias F)

If a function is static member function

isVariable
template isVariable(alias member)
Undocumented in source.
memberIsRegularFunction
template memberIsRegularFunction(alias member)
Undocumented in source.
memberIsSomeFunction
template memberIsSomeFunction(alias member)
Undocumented in source.
moduleOf
template moduleOf(alias T)
Undocumented in source.

Meta