28 lines
538 B
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();
|
||
|
}
|
||
|
}
|