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 };