Commit 5c1428ea9d

Eric Eastwood <madlittlemods@gmail.com>
2023-12-11 23:04:43
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.
1 parent 3d23ba9
Changed files (1)
lib
lib/std/enums.zig
@@ -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 {