portingtools/src/State.zig

28 lines
538 B
Zig

const std = @import("std");
pub const Mapping = struct {
mapped: []const u8,
doc: ?[]const u8,
};
pub const MapData = struct {
arena: std.heap.ArenaAllocator,
mappings: std.StringHashMap(Mapping),
renames: std.StringHashMap([]const u8),
};
alloc: std.mem.Allocator,
lock: std.Thread.RwLock,
mdata: ?MapData = null,
const State = @This();
pub fn deinit(self: State) void {
var selfv = self;
if (selfv.mdata) |*m| {
m.arena.deinit();
m.mappings.deinit();
m.renames.deinit();
}
}