@@ -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.
316316pub const Prefix = std .BoundedArray (u8 , PREFIX_BUFSIZE );
317+ // TODO: further optimize appendAssumeCapacity - optimizer does not inline the call
317318
318319/// Generate a string prefix.
319320pub 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