lib/choir/src/backends/artifact/model/payload/text.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 const std = @import("std");
2 const payload = @import("root.zig");
3
4 const Allocator = std.mem.Allocator;
5
6 pub const TextDump = struct {
7 name: []const u8,
8 contents: []const u8,
9
10 pub fn dupe(self: TextDump, allocator: Allocator) Allocator.Error!TextDump {
11 const name = try payload.slice.dupe(allocator, self.name);
12 errdefer payload.slice.free(allocator, name);
13 return .{
14 .name = name,
15 .contents = try payload.slice.dupe(allocator, self.contents),
16 };
17 }
18
19 pub fn deinit(self: TextDump, allocator: Allocator) void {
20 payload.slice.free(allocator, self.name);
21 payload.slice.free(allocator, self.contents);
22 }
23
24 pub fn eql(self: TextDump, other: TextDump) bool {
25 return std.mem.eql(u8, self.name, other.name) and
26 std.mem.eql(u8, self.contents, other.contents);
27 }
28 };