changing occurrences of HashMap with []const u8 as keys for StringHashMap
This commit is contained in:
parent
be17a4b6c1
commit
f08c6e4fe6
@ -307,7 +307,7 @@ const Node = union(enum) {
|
|||||||
const Toc = struct {
|
const Toc = struct {
|
||||||
nodes: []Node,
|
nodes: []Node,
|
||||||
toc: []u8,
|
toc: []u8,
|
||||||
urls: std.HashMap([]const u8, Token, mem.hash_slice_u8, mem.eql_slice_u8),
|
urls: std.StringHashMap(Token),
|
||||||
};
|
};
|
||||||
|
|
||||||
const Action = enum {
|
const Action = enum {
|
||||||
@ -316,7 +316,7 @@ const Action = enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc {
|
fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc {
|
||||||
var urls = std.HashMap([]const u8, Token, mem.hash_slice_u8, mem.eql_slice_u8).init(allocator);
|
var urls = std.StringHashMap(Token).init(allocator);
|
||||||
errdefer urls.deinit();
|
errdefer urls.deinit();
|
||||||
|
|
||||||
var header_stack_size: usize = 0;
|
var header_stack_size: usize = 0;
|
||||||
|
@ -5,7 +5,7 @@ const mem = std.mem;
|
|||||||
|
|
||||||
const Allocator = mem.Allocator;
|
const Allocator = mem.Allocator;
|
||||||
const ArrayList = std.ArrayList;
|
const ArrayList = std.ArrayList;
|
||||||
const HashMap = std.HashMap;
|
const StringHashMap = std.StringHashMap;
|
||||||
|
|
||||||
fn trimStart(slice: []const u8, ch: u8) []const u8 {
|
fn trimStart(slice: []const u8, ch: u8) []const u8 {
|
||||||
var i: usize = 0;
|
var i: usize = 0;
|
||||||
@ -73,7 +73,7 @@ fn readFlagArguments(allocator: *Allocator, args: []const []const u8, required:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const HashMapFlags = HashMap([]const u8, FlagArg, std.hash.Fnv1a_32.hash, mem.eql_slice_u8);
|
const HashMapFlags = StringHashMap(FlagArg);
|
||||||
|
|
||||||
// A store for querying found flags and positional arguments.
|
// A store for querying found flags and positional arguments.
|
||||||
pub const Args = struct {
|
pub const Args = struct {
|
||||||
|
@ -249,7 +249,7 @@ pub const Compilation = struct {
|
|||||||
const ArrayTypeTable = std.HashMap(*const Type.Array.Key, *Type.Array, Type.Array.Key.hash, Type.Array.Key.eql);
|
const ArrayTypeTable = std.HashMap(*const Type.Array.Key, *Type.Array, Type.Array.Key.hash, Type.Array.Key.eql);
|
||||||
const PtrTypeTable = std.HashMap(*const Type.Pointer.Key, *Type.Pointer, Type.Pointer.Key.hash, Type.Pointer.Key.eql);
|
const PtrTypeTable = std.HashMap(*const Type.Pointer.Key, *Type.Pointer, Type.Pointer.Key.hash, Type.Pointer.Key.eql);
|
||||||
const FnTypeTable = std.HashMap(*const Type.Fn.Key, *Type.Fn, Type.Fn.Key.hash, Type.Fn.Key.eql);
|
const FnTypeTable = std.HashMap(*const Type.Fn.Key, *Type.Fn, Type.Fn.Key.hash, Type.Fn.Key.eql);
|
||||||
const TypeTable = std.HashMap([]const u8, *Type, mem.hash_slice_u8, mem.eql_slice_u8);
|
const TypeTable = std.StringHashMap(*Type);
|
||||||
|
|
||||||
const CompileErrList = std.ArrayList(*Msg);
|
const CompileErrList = std.ArrayList(*Msg);
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ pub const Decl = struct {
|
|||||||
// TODO when we destroy the decl, deref the tree scope
|
// TODO when we destroy the decl, deref the tree scope
|
||||||
tree_scope: *Scope.AstTree,
|
tree_scope: *Scope.AstTree,
|
||||||
|
|
||||||
pub const Table = std.HashMap([]const u8, *Decl, mem.hash_slice_u8, mem.eql_slice_u8);
|
pub const Table = std.StringHashMap(*Decl);
|
||||||
|
|
||||||
pub fn cast(base: *Decl, comptime T: type) ?*T {
|
pub fn cast(base: *Decl, comptime T: type) ?*T {
|
||||||
if (base.id != @field(Id, @typeName(T))) return null;
|
if (base.id != @field(Id, @typeName(T))) return null;
|
||||||
|
@ -541,7 +541,7 @@ const Fmt = struct {
|
|||||||
color: errmsg.Color,
|
color: errmsg.Color,
|
||||||
loop: *event.Loop,
|
loop: *event.Loop,
|
||||||
|
|
||||||
const SeenMap = std.HashMap([]const u8, void, mem.hash_slice_u8, mem.eql_slice_u8);
|
const SeenMap = std.StringHashMap(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
fn parseLibcPaths(allocator: *Allocator, libc: *LibCInstallation, libc_paths_file: []const u8) void {
|
fn parseLibcPaths(allocator: *Allocator, libc: *LibCInstallation, libc_paths_file: []const u8) void {
|
||||||
|
@ -10,7 +10,7 @@ pub const Package = struct {
|
|||||||
/// relative to root_src_dir
|
/// relative to root_src_dir
|
||||||
table: Table,
|
table: Table,
|
||||||
|
|
||||||
pub const Table = std.HashMap([]const u8, *Package, mem.hash_slice_u8, mem.eql_slice_u8);
|
pub const Table = std.StringHashMap(*Package);
|
||||||
|
|
||||||
/// makes internal copies of root_src_dir and root_src_path
|
/// makes internal copies of root_src_dir and root_src_path
|
||||||
/// allocator should be an arena allocator because Package never frees anything
|
/// allocator should be an arena allocator because Package never frees anything
|
||||||
|
@ -343,7 +343,7 @@ const Fmt = struct {
|
|||||||
color: errmsg.Color,
|
color: errmsg.Color,
|
||||||
allocator: *mem.Allocator,
|
allocator: *mem.Allocator,
|
||||||
|
|
||||||
const SeenMap = std.HashMap([]const u8, void, mem.hash_slice_u8, mem.eql_slice_u8);
|
const SeenMap = std.StringHashMap(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
fn printErrMsgToFile(
|
fn printErrMsgToFile(
|
||||||
@ -376,7 +376,7 @@ fn printErrMsgToFile(
|
|||||||
const text = text_buf.toOwnedSlice();
|
const text = text_buf.toOwnedSlice();
|
||||||
|
|
||||||
const stream = &file.outStream().stream;
|
const stream = &file.outStream().stream;
|
||||||
try stream.print( "{}:{}:{}: error: {}\n", path, start_loc.line + 1, start_loc.column + 1, text);
|
try stream.print("{}:{}:{}: error: {}\n", path, start_loc.line + 1, start_loc.column + 1, text);
|
||||||
|
|
||||||
if (!color_on) return;
|
if (!color_on) return;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
const std = @import("std.zig");
|
const std = @import("std.zig");
|
||||||
const HashMap = std.HashMap;
|
const StringHashMap = std.StringHashMap;
|
||||||
const mem = std.mem;
|
const mem = std.mem;
|
||||||
const Allocator = mem.Allocator;
|
const Allocator = mem.Allocator;
|
||||||
const testing = std.testing;
|
const testing = std.testing;
|
||||||
@ -9,7 +9,7 @@ const testing = std.testing;
|
|||||||
pub const BufMap = struct {
|
pub const BufMap = struct {
|
||||||
hash_map: BufMapHashMap,
|
hash_map: BufMapHashMap,
|
||||||
|
|
||||||
const BufMapHashMap = HashMap([]const u8, []const u8, mem.hash_slice_u8, mem.eql_slice_u8);
|
const BufMapHashMap = StringHashMap([]const u8);
|
||||||
|
|
||||||
pub fn init(allocator: *Allocator) BufMap {
|
pub fn init(allocator: *Allocator) BufMap {
|
||||||
var self = BufMap{ .hash_map = BufMapHashMap.init(allocator) };
|
var self = BufMap{ .hash_map = BufMapHashMap.init(allocator) };
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
const std = @import("std.zig");
|
const std = @import("std.zig");
|
||||||
const HashMap = @import("hash_map.zig").HashMap;
|
const StringHashMap = std.StringHashMap;
|
||||||
const mem = @import("mem.zig");
|
const mem = @import("mem.zig");
|
||||||
const Allocator = mem.Allocator;
|
const Allocator = mem.Allocator;
|
||||||
const testing = std.testing;
|
const testing = std.testing;
|
||||||
@ -7,7 +7,7 @@ const testing = std.testing;
|
|||||||
pub const BufSet = struct {
|
pub const BufSet = struct {
|
||||||
hash_map: BufSetHashMap,
|
hash_map: BufSetHashMap,
|
||||||
|
|
||||||
const BufSetHashMap = HashMap([]const u8, void, mem.hash_slice_u8, mem.eql_slice_u8);
|
const BufSetHashMap = StringHashMap(void);
|
||||||
|
|
||||||
pub fn init(a: *Allocator) BufSet {
|
pub fn init(a: *Allocator) BufSet {
|
||||||
var self = BufSet{ .hash_map = BufSetHashMap.init(a) };
|
var self = BufSet{ .hash_map = BufSetHashMap.init(a) };
|
||||||
|
@ -7,7 +7,7 @@ const debug = std.debug;
|
|||||||
const assert = debug.assert;
|
const assert = debug.assert;
|
||||||
const warn = std.debug.warn;
|
const warn = std.debug.warn;
|
||||||
const ArrayList = std.ArrayList;
|
const ArrayList = std.ArrayList;
|
||||||
const HashMap = std.HashMap;
|
const StringHashMap = std.StringHashMap;
|
||||||
const Allocator = mem.Allocator;
|
const Allocator = mem.Allocator;
|
||||||
const process = std.process;
|
const process = std.process;
|
||||||
const BufSet = std.BufSet;
|
const BufSet = std.BufSet;
|
||||||
@ -60,8 +60,8 @@ pub const Builder = struct {
|
|||||||
C11,
|
C11,
|
||||||
};
|
};
|
||||||
|
|
||||||
const UserInputOptionsMap = HashMap([]const u8, UserInputOption, mem.hash_slice_u8, mem.eql_slice_u8);
|
const UserInputOptionsMap = StringHashMap(UserInputOption);
|
||||||
const AvailableOptionsMap = HashMap([]const u8, AvailableOption, mem.hash_slice_u8, mem.eql_slice_u8);
|
const AvailableOptionsMap = StringHashMap(AvailableOption);
|
||||||
|
|
||||||
const AvailableOption = struct {
|
const AvailableOption = struct {
|
||||||
name: []const u8,
|
name: []const u8,
|
||||||
|
@ -989,7 +989,7 @@ test "json.validate" {
|
|||||||
const Allocator = std.mem.Allocator;
|
const Allocator = std.mem.Allocator;
|
||||||
const ArenaAllocator = std.heap.ArenaAllocator;
|
const ArenaAllocator = std.heap.ArenaAllocator;
|
||||||
const ArrayList = std.ArrayList;
|
const ArrayList = std.ArrayList;
|
||||||
const HashMap = std.HashMap;
|
const StringHashMap = std.StringHashMap;
|
||||||
|
|
||||||
pub const ValueTree = struct {
|
pub const ValueTree = struct {
|
||||||
arena: ArenaAllocator,
|
arena: ArenaAllocator,
|
||||||
@ -1000,7 +1000,7 @@ pub const ValueTree = struct {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
pub const ObjectMap = HashMap([]const u8, Value, mem.hash_slice_u8, mem.eql_slice_u8);
|
pub const ObjectMap = StringHashMap(Value);
|
||||||
|
|
||||||
pub const Value = union(enum) {
|
pub const Value = union(enum) {
|
||||||
Null,
|
Null,
|
||||||
|
37
std/mem.zig
37
std/mem.zig
@ -738,47 +738,34 @@ test "writeIntBig and writeIntLittle" {
|
|||||||
var buf9: [9]u8 = undefined;
|
var buf9: [9]u8 = undefined;
|
||||||
|
|
||||||
writeIntBig(u0, &buf0, 0x0);
|
writeIntBig(u0, &buf0, 0x0);
|
||||||
testing.expect(eql_slice_u8(buf0[0..], [_]u8{}));
|
testing.expect(eql(u8, buf0[0..], [_]u8{}));
|
||||||
writeIntLittle(u0, &buf0, 0x0);
|
writeIntLittle(u0, &buf0, 0x0);
|
||||||
testing.expect(eql_slice_u8(buf0[0..], [_]u8{}));
|
testing.expect(eql(u8, buf0[0..], [_]u8{}));
|
||||||
|
|
||||||
writeIntBig(u8, &buf1, 0x12);
|
writeIntBig(u8, &buf1, 0x12);
|
||||||
testing.expect(eql_slice_u8(buf1[0..], [_]u8{0x12}));
|
testing.expect(eql(u8, buf1[0..], [_]u8{0x12}));
|
||||||
writeIntLittle(u8, &buf1, 0x34);
|
writeIntLittle(u8, &buf1, 0x34);
|
||||||
testing.expect(eql_slice_u8(buf1[0..], [_]u8{0x34}));
|
testing.expect(eql(u8, buf1[0..], [_]u8{0x34}));
|
||||||
|
|
||||||
writeIntBig(u16, &buf2, 0x1234);
|
writeIntBig(u16, &buf2, 0x1234);
|
||||||
testing.expect(eql_slice_u8(buf2[0..], [_]u8{ 0x12, 0x34 }));
|
testing.expect(eql(u8, buf2[0..], [_]u8{ 0x12, 0x34 }));
|
||||||
writeIntLittle(u16, &buf2, 0x5678);
|
writeIntLittle(u16, &buf2, 0x5678);
|
||||||
testing.expect(eql_slice_u8(buf2[0..], [_]u8{ 0x78, 0x56 }));
|
testing.expect(eql(u8, buf2[0..], [_]u8{ 0x78, 0x56 }));
|
||||||
|
|
||||||
writeIntBig(u72, &buf9, 0x123456789abcdef024);
|
writeIntBig(u72, &buf9, 0x123456789abcdef024);
|
||||||
testing.expect(eql_slice_u8(buf9[0..], [_]u8{ 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x24 }));
|
testing.expect(eql(u8, buf9[0..], [_]u8{ 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x24 }));
|
||||||
writeIntLittle(u72, &buf9, 0xfedcba9876543210ec);
|
writeIntLittle(u72, &buf9, 0xfedcba9876543210ec);
|
||||||
testing.expect(eql_slice_u8(buf9[0..], [_]u8{ 0xec, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe }));
|
testing.expect(eql(u8, buf9[0..], [_]u8{ 0xec, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe }));
|
||||||
|
|
||||||
writeIntBig(i8, &buf1, -1);
|
writeIntBig(i8, &buf1, -1);
|
||||||
testing.expect(eql_slice_u8(buf1[0..], [_]u8{0xff}));
|
testing.expect(eql(u8, buf1[0..], [_]u8{0xff}));
|
||||||
writeIntLittle(i8, &buf1, -2);
|
writeIntLittle(i8, &buf1, -2);
|
||||||
testing.expect(eql_slice_u8(buf1[0..], [_]u8{0xfe}));
|
testing.expect(eql(u8, buf1[0..], [_]u8{0xfe}));
|
||||||
|
|
||||||
writeIntBig(i16, &buf2, -3);
|
writeIntBig(i16, &buf2, -3);
|
||||||
testing.expect(eql_slice_u8(buf2[0..], [_]u8{ 0xff, 0xfd }));
|
testing.expect(eql(u8, buf2[0..], [_]u8{ 0xff, 0xfd }));
|
||||||
writeIntLittle(i16, &buf2, -4);
|
writeIntLittle(i16, &buf2, -4);
|
||||||
testing.expect(eql_slice_u8(buf2[0..], [_]u8{ 0xfc, 0xff }));
|
testing.expect(eql(u8, buf2[0..], [_]u8{ 0xfc, 0xff }));
|
||||||
}
|
|
||||||
|
|
||||||
pub fn hash_slice_u8(k: []const u8) u32 {
|
|
||||||
// FNV 32-bit hash
|
|
||||||
var h: u32 = 2166136261;
|
|
||||||
for (k) |b| {
|
|
||||||
h = (h ^ b) *% 16777619;
|
|
||||||
}
|
|
||||||
return h;
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn eql_slice_u8(a: []const u8, b: []const u8) bool {
|
|
||||||
return eql(u8, a, b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns an iterator that iterates over the slices of `buffer` that are not
|
/// Returns an iterator that iterates over the slices of `buffer` that are not
|
||||||
|
Loading…
x
Reference in New Issue
Block a user