Add getPtrConstAssertContains(...) for compatibility with a const std.EnumMap

This way people can use `const` with a `std.EnumMap`
and be able to `getPtrAssertContains(...)` like the
would with a mutable `var` instance.

Aligns with the existing `getPtr(...)`/`getPtrConst(...)`
methods.
This commit is contained in:
Eric Eastwood 2023-12-11 16:04:43 -06:00 committed by GitHub
parent 3d23ba9c35
commit 5c1428ea9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1086,6 +1086,14 @@ pub fn IndexedMap(comptime I: type, comptime V: type, comptime Ext: ?fn (type) t
return &self.values[index];
}
/// Gets the address of the const value associated with a key.
/// The key must be present in the map.
pub fn getPtrConstAssertContains(self: *const Self, key: Key) *const Value {
const index = Indexer.indexOf(key);
assert(self.bits.isSet(index));
return &self.values[index];
}
/// Adds the key to the map with the supplied value.
/// If the key is already in the map, overwrites the value.
pub fn put(self: *Self, key: Key, value: Value) void {