Skip to content

Commit 8a29616

Browse files
committed
Unpack.raw: return error for arrays and maps
1 parent af70a2b commit 8a29616

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/root.zig

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -814,11 +814,6 @@ pub const Unpack = struct {
814814
pub fn next(self: *Unpack, headerType: HeaderType) Header {
815815
const header, const consumes = Header.from(headerType, self.rest[1..]);
816816
self.rest = self.rest[1 + consumes ..];
817-
// std.debug.print("Unpack.next headerType = {}, comsumes = {}, header = {}\n", .{
818-
// headerType,
819-
// consumes,
820-
// header,
821-
// });
822817
return header;
823818
}
824819

@@ -881,10 +876,15 @@ pub const Unpack = struct {
881876

882877
/// Consume the current value as the raw, as long as they
883878
/// have the size.
884-
pub fn raw(self: *Unpack, header: Header) []const u8 {
885-
const result = self.rest[0..header.size];
886-
self.rest = self.rest[header.size..];
887-
return result;
879+
pub fn raw(self: *Unpack, header: Header) ConvertError![]const u8 {
880+
switch (header.type) {
881+
.array, .fixarray, .map, .fixmap => return ConvertError.InvalidValue,
882+
else => {
883+
const result = self.rest[0..header.size];
884+
self.rest = self.rest[header.size..];
885+
return result;
886+
},
887+
}
888888
}
889889

890890
inline fn rawFloat(self: *Unpack, header: Header) ConvertError!f64 {

0 commit comments

Comments
 (0)