declarations
Instead of this function, prefer to use e.g. @typeInfo(foo).@"struct".decls
directly when you know what kind of type it is.
Function parameters
Parameters
- T:type
Functions in this namespace
Functions
- stringToEnum
- Returns the variant of an enum type, `T`, which is named `str`, or `null` if no such variant exists.
- alignment
- Returns the alignment of type T.
- Child
- Given a parameterized type (array, vector, pointer, optional), returns the "child type".
- Elem
- Given a "memory span" type (array, slice, vector, or pointer to such), returns the "element type".
- sentinel
- Given a type which can have a sentinel e.g.
- Sentinel
- Given a "memory span" type, returns the same type except with the given sentinel value.
- declarations
- Instead of this function, prefer to use e.g.
- tags
- Given an enum or error set type, returns a pointer to an array containing all tags for that
- FieldEnum
- Returns an enum with a variant named after each field of `T`.
- activeTag
- Returns the active tag of a tagged union
- TagPayloadByName
- Deprecated: Use @FieldType(U, tag_name)
- TagPayload
- Deprecated: Use @FieldType(U, @tagName(tag))
- eql
- Compares two of any type for equality.
- intToEnum
- Deprecated: use `std.enums.fromInt` instead and handle null instead of an error.
- fieldIndex
- Given a type and a name, return the field index according to source order.
- declList
- Returns a slice of pointers to public declarations of a namespace.
- ArgsTuple
- For a given function type, returns a tuple type which fields will
- Tuple
- For a given anonymous list of types, returns a new tuple type
- isError
- Returns whether `error_union` contains an error.
- hasFn
- Returns true if a type has a namespace and the namespace contains `name`;
- hasMethod
- Returns true if a type has a `name` method; `false` otherwise.
- hasUniqueRepresentation
- True if every value of the type `T` has a unique bit pattern representing it.
Error sets in this namespace
Error Sets
- IntToEnumError
- Deprecated: use `std.enums.fromInt` instead and handle null.
Source
Implementation
pub fn declarations(comptime T: type) []const Type.Declaration {
return switch (@typeInfo(T)) {
.@"struct" => |info| info.decls,
.@"enum" => |info| info.decls,
.@"union" => |info| info.decls,
.@"opaque" => |info| info.decls,
else => @compileError("Expected struct, enum, union, or opaque type, found '" ++ @typeName(T) ++ "'"),
};
}