init
Initializes the multiset using a struct of counts.
Function parameters
Parameters
- init_counts:EnumFieldStruct(E, CountSize, 0)
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 init(init_counts: EnumFieldStruct(E, CountSize, 0)) Self {
@setEvalBranchQuota(2 * @typeInfo(E).@"enum".fields.len);
var self = initWithCount(0);
inline for (@typeInfo(E).@"enum".fields) |field| {
const c = @field(init_counts, field.name);
const key = @as(E, @enumFromInt(field.value));
self.counts.set(key, c);
}
return self;
}