DoxigAlpha

directEnumArray

Initializes an array of Data which can be indexed by @intCast(usize, @intFromEnum(enum_value)). If the enum is non-exhaustive, the resulting array will only be large enough to hold all explicit fields. If the enum contains any fields with values that cannot be represented by usize, a compile error is issued. The max_unused_slots parameter limits the total number of items which have no matching enum key (holes in the enum numbering). So for example, if an enum has values 1, 2, 5, and 6, max_unused_slots must be at least 3, to allow unused slots 0, 3, and 4. The init_values parameter must be a struct with field names that match the enum values. If the enum has multiple fields with the same value, the name of the first one must be used.

Function parameters

Parameters

#
E:type
Data:type
max_unused_slots:comptime_int
init_values:EnumFieldStruct(E, Data, null)

Functions in this namespace

Functions

#
EnumFieldStruct
Returns a struct with a field matching each unique named enum element.
valuesFromFields
Looks up the supplied fields in the given enum type.
values
Returns the set of all named values in the given enum, in
tagName
A safe alternative to @tagName() for non-exhaustive enums that doesn't
directEnumArrayLen
Determines the length of a direct-mapped enum array, indexed by
directEnumArray
Initializes an array of Data which can be indexed by
directEnumArrayDefault
Initializes an array of Data which can be indexed by
nameCast
Deprecated: Use @field(E, @tagName(tag)) or @field(E, string)
EnumSet
A set of enum elements, backed by a bitfield.
EnumMap
A map keyed by an enum, backed by a bitfield and a dense array.
EnumMultiset
A multiset of enum elements up to a count of usize.
BoundedEnumMultiset
A multiset of enum elements up to CountSize.
EnumArray
An array keyed by an enum, backed by a dense array.

Source

Implementation

#
pub fn directEnumArray(
    comptime E: type,
    comptime Data: type,
    comptime max_unused_slots: comptime_int,
    init_values: EnumFieldStruct(E, Data, null),
) [directEnumArrayLen(E, max_unused_slots)]Data {
    return directEnumArrayDefault(E, Data, null, max_unused_slots, init_values);
}