#exe {
--name hash_map
-Mroot=main.zig
#}

#write main.zig {
const std = @import("std");
const Context = struct {
    pub fn hash(_: Context, key: u32) Map.Hash {
        return key;
    }
    pub fn eql(_: Context, lhs: u32, rhs: u32) bool {
        return lhs == rhs;
    }
};
const Map = std.HashMapUnmanaged(u32, u32, Context, 63);
fn testHashMap(map: Map) void {
    _ = map;
}
pub fn main() !void {
    var map: Map = .empty;
    defer map.deinit(std.heap.page_allocator);
    try map.ensureTotalCapacity(std.heap.page_allocator, 10);
    map.putAssumeCapacity(0, 1);
    map.putAssumeCapacity(2, 3);
    map.putAssumeCapacity(4, 5);
    map.putAssumeCapacity(6, 7);
    map.putAssumeCapacity(8, 9);

    testHashMap(map);
}
#}
#update
#check lldb {
(lldb) breakpoint set --file main.zig --source-pattern-regexp '_ = map;'
Breakpoint 1: where = hash_map`main.testHashMap + #... at main.zig:13:1, address = 0x#...
(lldb) process launch
Process #... launched: '#.../hash_map' (#...)
Process #... stopped
* thread #1, name = 'hash_map', stop reason = breakpoint 1.1
       frame #0: hash_map`main.testHashMap(map=len=5 capacity=16) at main.zig:13:1
(lldb) frame variable --show-all-children --show-types -- map
(std.hash_map.Custom(u32,u32,main.Context,63)) map = len=5 capacity=16 {
  (std.hash_map.Custom(u32,u32,main.Context,63).KV) [0] = {
    (u32) .key = 0
    (u32) .value = 1
  }
  (std.hash_map.Custom(u32,u32,main.Context,63).KV) [1] = {
    (u32) .key = 2
    (u32) .value = 3
  }
  (std.hash_map.Custom(u32,u32,main.Context,63).KV) [2] = {
    (u32) .key = 4
    (u32) .value = 5
  }
  (std.hash_map.Custom(u32,u32,main.Context,63).KV) [3] = {
    (u32) .key = 6
    (u32) .value = 7
  }
  (std.hash_map.Custom(u32,u32,main.Context,63).KV) [4] = {
    (u32) .key = 8
    (u32) .value = 9
  }
}
(lldb) breakpoint delete --force 1
1 breakpoints deleted; 0 breakpoint locations disabled.
#}
