Skip to content

Commit 5525836

Browse files
committed
HeaderType.from: remove additional branches
1 parent ee474f9 commit 5525836

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

src/root.zig

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -516,23 +516,28 @@ pub const HeaderType = union(enum) {
516516
map: u1,
517517

518518
pub fn from(value: u8) ?HeaderType {
519-
if (value & ContainerType.MASK_FIXED_INT_POSITIVE == @intFromEnum(ContainerType.fixed_int_positive)) {
520-
return .{ .fixint = @intCast(value & ~ContainerType.MASK_FIXED_INT_POSITIVE) };
521-
}
522-
if (value & ContainerType.MASK_FIXED_INT_NEGATIVE == @intFromEnum(ContainerType.fixed_int_negative)) {
523-
return .{ .fixint = -@as(i8, @intCast(value & ~ContainerType.MASK_FIXED_INT_NEGATIVE)) };
524-
}
525-
if (value & ContainerType.MASK_FIXED_STR == @intFromEnum(ContainerType.fixed_str)) {
526-
return .{ .fixstr = value & ~ContainerType.MASK_FIXED_STR };
527-
}
528-
if (value & ContainerType.MASK_FIXED_ARRAY == @intFromEnum(ContainerType.fixed_array)) {
529-
return .{ .fixarray = value & ~ContainerType.MASK_FIXED_ARRAY };
530-
}
531-
if (value & ContainerType.MASK_FIXED_MAP == @intFromEnum(ContainerType.fixed_map)) {
532-
return .{ .fixmap = value & ~ContainerType.MASK_FIXED_MAP };
533-
}
519+
const MAX_FIXED_INT_NEG = ~ContainerType.MASK_FIXED_INT_NEGATIVE | @intFromEnum(ContainerType.fixed_int_negative);
520+
const MAX_FIXED_INT_POS = ~ContainerType.MASK_FIXED_INT_POSITIVE | @intFromEnum(ContainerType.fixed_int_positive);
521+
const MAX_FIXED_STR = ~ContainerType.MASK_FIXED_STR | @intFromEnum(ContainerType.fixed_str);
522+
const MAX_FIXED_ARRAY = ~ContainerType.MASK_FIXED_ARRAY | @intFromEnum(ContainerType.fixed_array);
523+
const MAX_FIXED_MAP = ~ContainerType.MASK_FIXED_MAP | @intFromEnum(ContainerType.fixed_map);
534524

535525
return switch (value) {
526+
@intFromEnum(ContainerType.fixed_int_positive)...MAX_FIXED_INT_POS => .{
527+
.fixint = @intCast(value & ~ContainerType.MASK_FIXED_INT_POSITIVE),
528+
},
529+
@intFromEnum(ContainerType.fixed_int_negative)...MAX_FIXED_INT_NEG => .{
530+
.fixint = -@as(i8, @intCast(value & ~ContainerType.MASK_FIXED_INT_NEGATIVE)),
531+
},
532+
@intFromEnum(ContainerType.fixed_str)...MAX_FIXED_STR => .{
533+
.fixstr = value & ~ContainerType.MASK_FIXED_STR,
534+
},
535+
@intFromEnum(ContainerType.fixed_array)...MAX_FIXED_ARRAY => .{
536+
.fixarray = value & ~ContainerType.MASK_FIXED_ARRAY,
537+
},
538+
@intFromEnum(ContainerType.fixed_map)...MAX_FIXED_MAP => .{
539+
.fixmap = value & ~ContainerType.MASK_FIXED_MAP,
540+
},
536541
@intFromEnum(ContainerType.nil) => .nil,
537542
@intFromEnum(ContainerType.bool_false), @intFromEnum(ContainerType.bool_true) => .{
538543
.bool = (value - @intFromEnum(ContainerType.bool_false)) == 1,

0 commit comments

Comments
 (0)