@@ -618,10 +618,6 @@ pub fn writeAllPreserve(w: *Writer, preserve_length: usize, bytes: []const u8) E
618
618
/// A user type may be a `struct`, `vector`, `union` or `enum` type.
619
619
///
620
620
/// To print literal curly braces, escape them by writing them twice, e.g. `{{` or `}}`.
621
- ///
622
- /// Asserts `buffer` capacity of at least 2 if a union is printed. This
623
- /// requirement could be lifted by adjusting the code, but if you trigger that
624
- /// assertion it is a clue that you should probably be using a buffer.
625
621
pub fn print (w : * Writer , comptime fmt : []const u8 , args : anytype ) Error ! void {
626
622
const ArgsType = @TypeOf (args );
627
623
const args_type_info = @typeInfo (ArgsType );
@@ -1257,14 +1253,13 @@ pub fn printValue(
1257
1253
.@"extern" , .@"packed" = > {
1258
1254
if (info .fields .len == 0 ) return w .writeAll (".{}" );
1259
1255
try w .writeAll (".{ " );
1260
- inline for (info .fields ) | field | {
1256
+ inline for (info .fields , 1 .. ) | field , i | {
1261
1257
try w .writeByte ('.' );
1262
1258
try w .writeAll (field .name );
1263
1259
try w .writeAll (" = " );
1264
1260
try w .printValue (ANY , options , @field (value , field .name ), max_depth - 1 );
1265
- ( try w .writableArray ( 2 )) .* = ", " .* ;
1261
+ try w .writeAll ( if ( i < info . fields . len ) ", " else " }" ) ;
1266
1262
}
1267
- w .buffer [w .end - 2 .. ][0.. 2].* = " }" .* ;
1268
1263
},
1269
1264
}
1270
1265
},
0 commit comments