Skip to content

Commit 7a82656

Browse files
committed
prefix*: use truncate instead of intCast
1 parent c7818e6 commit 7a82656

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

src/root.zig

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@ pub const PREFIX_BUFSIZE = 6;
314314
/// The prefix for a value.
315315
/// This is the header to be stored before the actual content.
316316
pub const Prefix = std.BoundedArray(u8, PREFIX_BUFSIZE);
317+
// TODO: further optimize appendAssumeCapacity - optimizer does not inline the call
317318

318319
/// Generate a string prefix.
319320
pub inline fn prefixString(len: u32) Prefix {
@@ -324,11 +325,11 @@ pub inline fn prefixString(len: u32) Prefix {
324325
},
325326
0b00011111 + 1...maxInt(u8) => {
326327
result.appendAssumeCapacity(0xd9);
327-
result.appendAssumeCapacity(@intCast(len));
328+
result.appendAssumeCapacity(@truncate(len));
328329
},
329330
maxInt(u8) + 1...maxInt(u16) => {
330331
result.appendAssumeCapacity(0xda);
331-
result.writer().writeInt(u16, @intCast(len), .big) catch unreachable;
332+
result.writer().writeInt(u16, @truncate(len), .big) catch unreachable;
332333
},
333334
maxInt(u16) + 1...maxInt(u32) => {
334335
result.appendAssumeCapacity(0xdb);
@@ -345,12 +346,12 @@ pub inline fn prefixBinary(len: u32) Prefix {
345346
0...maxInt(u8) => {
346347
result.appendSliceAssumeCapacity(&.{
347348
@intFromEnum(ContainerType.bin8),
348-
@as(u8, @intCast(len)),
349+
@as(u8, @truncate(len)),
349350
});
350351
},
351352
maxInt(u8) + 1...maxInt(u16) => {
352353
result.appendAssumeCapacity(@intFromEnum(ContainerType.bin16));
353-
result.writer().writeInt(u16, @intCast(len), .big) catch unreachable;
354+
result.writer().writeInt(u16, @truncate(len), .big) catch unreachable;
354355
},
355356
maxInt(u16) + 1...maxInt(u32) => {
356357
result.appendAssumeCapacity(@intFromEnum(ContainerType.bin32));
@@ -365,11 +366,11 @@ pub inline fn prefixArray(len: u32) Prefix {
365366
var result: Prefix = .{};
366367
switch (len) {
367368
0...0b00001111 => {
368-
result.appendAssumeCapacity(0b10010000 | (0b00001111 & @as(u8, @intCast(len))));
369+
result.appendAssumeCapacity(0b10010000 | (0b00001111 & @as(u8, @truncate(len))));
369370
},
370371
(0b00001111 + 1)...maxInt(u16) => {
371372
result.appendAssumeCapacity(0xdc);
372-
result.writer().writeInt(u16, @intCast(len), .big) catch unreachable;
373+
result.writer().writeInt(u16, @truncate(len), .big) catch unreachable;
373374
},
374375
maxInt(u16) + 1...maxInt(u32) => {
375376
result.appendAssumeCapacity(0xdd);
@@ -388,11 +389,11 @@ pub inline fn prefixMap(len: u32) Prefix {
388389
var result: Prefix = .{};
389390
switch (len) {
390391
0...0b00001111 => {
391-
result.appendAssumeCapacity(0b10000000 | (0b00001111 & @as(u8, @intCast(len))));
392+
result.appendAssumeCapacity(0b10000000 | (0b00001111 & @as(u8, @truncate(len))));
392393
},
393394
(0b00001111 + 1)...maxInt(u16) => {
394395
result.appendAssumeCapacity(0xde);
395-
result.writer().writeInt(u16, @intCast(len), .big) catch unreachable;
396+
result.writer().writeInt(u16, @truncate(len), .big) catch unreachable;
396397
},
397398
maxInt(u16) + 1...maxInt(u32) => {
398399
result.appendAssumeCapacity(0xdf);
@@ -412,17 +413,17 @@ pub inline fn prefixExt(len: u32, extype: i8) Prefix {
412413
writer.writeInt(i8, extype, .big) catch unreachable;
413414
},
414415
0...maxInt(u8) => {
415-
result.appendSliceAssumeCapacity(&.{ 0xc7, @intCast(len) });
416+
result.appendSliceAssumeCapacity(&.{ 0xc7, @truncate(len) });
416417
writer.writeInt(i8, extype, .big) catch unreachable;
417418
},
418419
maxInt(u8) + 1...maxInt(u16) => {
419420
result.appendAssumeCapacity(0xc8);
420-
writer.writeInt(u16, @intCast(len), .big);
421+
writer.writeInt(u16, @truncate(len), .big);
421422
writer.writeInt(i8, extype, .big);
422423
},
423424
maxInt(u16) + 1...maxInt(u32) => {
424425
result.appendAssumeCapacity(0xc9);
425-
writer.writeInt(u32, @intCast(len), .big);
426+
writer.writeInt(u32, @truncate(len), .big);
426427
writer.writeInt(i8, extype, .big);
427428
},
428429
}
@@ -693,6 +694,7 @@ pub const HeaderType = union(enum) {
693694
}
694695

695696
pub fn nextComponentSize(self: @This()) usize {
697+
// TODO: Needs lookup table
696698
return switch (self) {
697699
.nil, .bool, .fixint, .fixarray, .fixmap => 0,
698700
.bin, .str => |n| switch (n) {

0 commit comments

Comments
 (0)