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 }