| ... | @@ -921,6 +921,9 @@ pub fn writeInt(comptime T: type, buffer: *[@divExact(T.bit_count, 8)]u8, value: | ... | @@ -921,6 +921,9 @@ pub fn writeInt(comptime T: type, buffer: *[@divExact(T.bit_count, 8)]u8, value: |
| 921 | pub fn writeIntSliceLittle(comptime T: type, buffer: []u8, value: T) void { | 921 | pub fn writeIntSliceLittle(comptime T: type, buffer: []u8, value: T) void { |
| 922 | assert(buffer.len >= @divExact(T.bit_count, 8)); | 922 | assert(buffer.len >= @divExact(T.bit_count, 8)); |
| 923 | | 923 | |
| | 924 | if (T.bit_count == 0) |
| | 925 | return set(u8, buffer, 0); |
| | 926 | |
| 924 | // TODO I want to call writeIntLittle here but comptime eval facilities aren't good enough | 927 | // TODO I want to call writeIntLittle here but comptime eval facilities aren't good enough |
| 925 | const uint = std.meta.IntType(false, T.bit_count); | 928 | const uint = std.meta.IntType(false, T.bit_count); |
| 926 | var bits = @truncate(uint, value); | 929 | var bits = @truncate(uint, value); |
| ... | @@ -938,6 +941,9 @@ pub fn writeIntSliceLittle(comptime T: type, buffer: []u8, value: T) void { | ... | @@ -938,6 +941,9 @@ pub fn writeIntSliceLittle(comptime T: type, buffer: []u8, value: T) void { |
| 938 | pub fn writeIntSliceBig(comptime T: type, buffer: []u8, value: T) void { | 941 | pub fn writeIntSliceBig(comptime T: type, buffer: []u8, value: T) void { |
| 939 | assert(buffer.len >= @divExact(T.bit_count, 8)); | 942 | assert(buffer.len >= @divExact(T.bit_count, 8)); |
| 940 | | 943 | |
| | 944 | if (T.bit_count == 0) |
| | 945 | return set(u8, buffer, 0); |
| | 946 | |
| 941 | // TODO I want to call writeIntBig here but comptime eval facilities aren't good enough | 947 | // TODO I want to call writeIntBig here but comptime eval facilities aren't good enough |
| 942 | const uint = std.meta.IntType(false, T.bit_count); | 948 | const uint = std.meta.IntType(false, T.bit_count); |
| 943 | var bits = @truncate(uint, value); | 949 | var bits = @truncate(uint, value); |
| ... | @@ -1807,7 +1813,7 @@ test "sliceAsBytes" { | ... | @@ -1807,7 +1813,7 @@ test "sliceAsBytes" { |
| 1807 | } | 1813 | } |
| 1808 | | 1814 | |
| 1809 | test "sliceAsBytes with sentinel slice" { | 1815 | test "sliceAsBytes with sentinel slice" { |
| 1810 | const empty_string:[:0]const u8 = ""; | 1816 | const empty_string: [:0]const u8 = ""; |
| 1811 | const bytes = sliceAsBytes(empty_string); | 1817 | const bytes = sliceAsBytes(empty_string); |
| 1812 | testing.expect(bytes.len == 0); | 1818 | testing.expect(bytes.len == 0); |
| 1813 | } | 1819 | } |