diff options
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/schema.d.ts | 1 | ||||
-rw-r--r-- | src/api/schema.js | 17 | ||||
-rw-r--r-- | src/api/schema.peechy | 2 | ||||
-rw-r--r-- | src/api/schema.zig | 31 |
4 files changed, 51 insertions, 0 deletions
diff --git a/src/api/schema.d.ts b/src/api/schema.d.ts index ce4521d6b..c78d7fc6c 100644 --- a/src/api/schema.d.ts +++ b/src/api/schema.d.ts @@ -127,6 +127,7 @@ type uint32 = number; main_fields?: string[]; platform?: Platform; watch?: boolean; + extension_order?: string[]; } export interface FileHandle { diff --git a/src/api/schema.js b/src/api/schema.js index acd53ac51..43670dff0 100644 --- a/src/api/schema.js +++ b/src/api/schema.js @@ -231,6 +231,12 @@ function decodeTransformOptions(bb) { result["watch"] = !!bb.readByte(); break; + case 19: + var length = bb.readVarUint(); + var values = result["extension_order"] = Array(length); + for (var i = 0; i < length; i++) values[i] = bb.readString(); + break; + default: throw new Error("Attempted to parse invalid message"); } @@ -392,6 +398,17 @@ bb.writeByte(encoded); bb.writeByte(18); bb.writeByte(value); } + + var value = message["extension_order"]; + if (value != null) { + bb.writeByte(19); + var values = value, n = values.length; + bb.writeVarUint(n); + for (var i = 0; i < n; i++) { + value = values[i]; + bb.writeString(value); + } + } bb.writeByte(0); } diff --git a/src/api/schema.peechy b/src/api/schema.peechy index f36a968b2..6c6889f00 100644 --- a/src/api/schema.peechy +++ b/src/api/schema.peechy @@ -69,6 +69,8 @@ message TransformOptions { Platform platform = 17; bool watch = 18; + + string[] extension_order = 19; } struct FileHandle { diff --git a/src/api/schema.zig b/src/api/schema.zig index d32b8fb23..bba5a3c94 100644 --- a/src/api/schema.zig +++ b/src/api/schema.zig @@ -203,6 +203,9 @@ pub const Api = struct { /// watch watch: ?bool = null, + /// extension_order + extension_order: []const []const u8, + pub fn decode(allocator: *std.mem.Allocator, reader: anytype) anyerror!TransformOptions { var obj = std.mem.zeroes(TransformOptions); try update(&obj, allocator, reader); @@ -380,6 +383,21 @@ pub const Api = struct { 18 => { result.watch = (try reader.readByte()) == @as(u8, 1); }, + 19 => { + { + var array_count = try reader.readIntNative(u32); + if (array_count != result.extension_order.len) { + result.extension_order = try allocator.alloc([]const u8, array_count); + } + length = try reader.readIntNative(u32); + for (result.extension_order) |content, j| { + if (result.extension_order[j].len != length and length > 0) { + result.extension_order[j] = try allocator.alloc(u8, length); + } + _ = try reader.readAll(result.extension_order[j].?); + } + } + }, else => { return error.InvalidMessage; }, @@ -545,6 +563,19 @@ pub const Api = struct { try writer.writeByte(18); try writer.writeByte(@boolToInt(watch)); } + + if (result.extension_order) |extension_order| { + try writer.writeByte(19); + n = result.extension_order.len; + _ = try writer.writeIntNative(u32, @intCast(u32, n)); + { + var j: usize = 0; + while (j < n) : (j += 1) { + _ = try writer.writeIntNative(u32, @intCast(u32, result.extension_order[j].len)); + try writer.writeAll(std.mem.sliceAsBytes(extension_order[j])); + } + } + } try writer.writeByte(0); return; } |