authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-07-06 06:10:03+00:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-07-06 06:10:03+00:00
logad2ed457dd925c65d7d2bcac9208cee5619c523d
treeb873229684321c6330d131e121806986eb8ee7b6
parenta2fd8f72c155d9c3ffeb3f625598fa81ed9629dc

std: expose unmanaged hash maps

These are useful when you have many of them in memory, and already have the allocator stored elsewhere.

2 files changed, 9 insertions(+), 3 deletions(-)

lib/std/hash_map.zig+4
......@@ -15,6 +15,10 @@ pub fn AutoHashMap(comptime K: type, comptime V: type) type {
1515 return HashMap(K, V, getAutoHashFn(K), getAutoEqlFn(K), autoEqlIsCheap(K));
1616}
1717
18pub fn AutoHashMapUnmanaged(comptime K: type, comptime V: type) type {
19 return HashMapUnmanaged(K, V, getAutoHashFn(K), getAutoEqlFn(K), autoEqlIsCheap(K));
20}
21
1822/// Builtin hashmap for strings as keys.
1923pub fn StringHashMap(comptime V: type) type {
2024 return HashMap([]const u8, V, hashString, eqlString, true);
lib/std/std.zig+5-3
......@@ -3,14 +3,16 @@ pub const ArrayListAligned = @import("array_list.zig").ArrayListAligned;
33pub const ArrayListAlignedUnmanaged = @import("array_list.zig").ArrayListAlignedUnmanaged;
44pub const ArrayListSentineled = @import("array_list_sentineled.zig").ArrayListSentineled;
55pub const ArrayListUnmanaged = @import("array_list.zig").ArrayListUnmanaged;
6pub const AutoHashMap = @import("hash_map.zig").AutoHashMap;
6pub const AutoHashMap = hash_map.AutoHashMap;
7pub const AutoHashMapUnmanaged = hash_map.AutoHashMapUnmanaged;
78pub const BloomFilter = @import("bloom_filter.zig").BloomFilter;
89pub const BufMap = @import("buf_map.zig").BufMap;
910pub const BufSet = @import("buf_set.zig").BufSet;
1011pub const ChildProcess = @import("child_process.zig").ChildProcess;
1112pub const ComptimeStringMap = @import("comptime_string_map.zig").ComptimeStringMap;
1213pub const DynLib = @import("dynamic_library.zig").DynLib;
13pub const HashMap = @import("hash_map.zig").HashMap;
14pub const HashMap = hash_map.HashMap;
15pub const HashMapUnmanaged = hash_map.HashMapUnmanaged;
1416pub const Mutex = @import("mutex.zig").Mutex;
1517pub const PackedIntArray = @import("packed_int_array.zig").PackedIntArray;
1618pub const PackedIntArrayEndian = @import("packed_int_array.zig").PackedIntArrayEndian;
......@@ -22,7 +24,7 @@ pub const ResetEvent = @import("reset_event.zig").ResetEvent;
2224pub const SegmentedList = @import("segmented_list.zig").SegmentedList;
2325pub const SinglyLinkedList = @import("linked_list.zig").SinglyLinkedList;
2426pub const SpinLock = @import("spinlock.zig").SpinLock;
25pub const StringHashMap = @import("hash_map.zig").StringHashMap;
27pub const StringHashMap = hash_map.StringHashMap;
2628pub const TailQueue = @import("linked_list.zig").TailQueue;
2729pub const Target = @import("target.zig").Target;
2830pub const Thread = @import("thread.zig").Thread;