lib/choir/src/composition/module/serialization/provenance.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

 1 const composition = @import("../../root.zig");
 2 const serialization = @import("root.zig");
 3 
 4 const source = composition.source;
 5 const Reader = serialization.format.Reader;
 6 const Writer = serialization.format.Writer;
 7 
 8 pub fn write(writer: *Writer, value: source.Provenance) serialization.SerializeError!void {
 9     try writer.writeString(value.path);
10     try writer.writeString(value.symbol);
11     try writer.writeInt(u32, value.line);
12     try writer.writeInt(u32, value.column);
13 }
14 
15 pub fn read(reader: *Reader) serialization.DeserializeError!source.ProvenanceSpec {
16     const path = try reader.readString();
17     const symbol = try reader.readString();
18     const line = try reader.readInt(u32);
19     const column = try reader.readInt(u32);
20     return .{
21         .path = path,
22         .symbol = symbol,
23         .line = line,
24         .column = column,
25     };
26 }