@@ -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