| ... | @@ -353,6 +353,7 @@ const Parser = struct { | ... | @@ -353,6 +353,7 @@ const Parser = struct { |
| 353 | return p.slice()[0..n].*; | 353 | return p.slice()[0..n].*; |
| 354 | } | 354 | } |
| 355 | | 355 | |
| | 356 | // tag(u8) + len(u32) + member_keys(N * u32) + member_values(N * u32) |
| 356 | pub fn addObject(p: *Parser, alloc: std.mem.Allocator, members: *const ObjectHashMap) !ValueIndex { | 357 | pub fn addObject(p: *Parser, alloc: std.mem.Allocator, members: *const ObjectHashMap) !ValueIndex { |
| 357 | const t = tracer.trace(@src(), "({d})", .{members.entries.len}); | 358 | const t = tracer.trace(@src(), "({d})", .{members.entries.len}); |
| 358 | defer t.end(); | 359 | defer t.end(); |
| ... | @@ -368,6 +369,7 @@ const Parser = struct { | ... | @@ -368,6 +369,7 @@ const Parser = struct { |
| 368 | return @enumFromInt(r); | 369 | return @enumFromInt(r); |
| 369 | } | 370 | } |
| 370 | | 371 | |
| | 372 | // tag(u8) + len(u32) + items(N * u32) |
| 371 | pub fn addArray(p: *Parser, alloc: std.mem.Allocator, items: []const ValueIndex) !ValueIndex { | 373 | pub fn addArray(p: *Parser, alloc: std.mem.Allocator, items: []const ValueIndex) !ValueIndex { |
| 372 | const t = tracer.trace(@src(), "({d})", .{items.len}); | 374 | const t = tracer.trace(@src(), "({d})", .{items.len}); |
| 373 | defer t.end(); | 375 | defer t.end(); |
| ... | @@ -382,6 +384,7 @@ const Parser = struct { | ... | @@ -382,6 +384,7 @@ const Parser = struct { |
| 382 | return @enumFromInt(r); | 384 | return @enumFromInt(r); |
| 383 | } | 385 | } |
| 384 | | 386 | |
| | 387 | // tag(u8) + len(u32) + bytes(N) |
| 385 | pub fn addStr(p: *Parser, alloc: std.mem.Allocator, str: string) !StringIndex { | 388 | pub fn addStr(p: *Parser, alloc: std.mem.Allocator, str: string) !StringIndex { |
| 386 | const t = tracer.trace(@src(), "({d})", .{str.len}); | 389 | const t = tracer.trace(@src(), "({d})", .{str.len}); |
| 387 | defer t.end(); | 390 | defer t.end(); |