| ... | ... | @@ -427,7 +427,7 @@ fn formatType(value: anytype, comptime fmt: []const u8, options: FormatOptions, |
| 427 | 427 | if (comptime std.meta.hasMethod(T, "format") and @typeInfo(@TypeOf(T.format)).@"fn".params[1].type.? != *std.Io.Writer) { |
| 428 | 428 | @compileError("fix this: " ++ @typeName(T)); |
| 429 | 429 | } |
| 430 | | if (std.meta.hasMethod(T, "nprint")) { |
| 430 | if (comptime std.meta.hasMethod(T, "nprint")) { |
| 431 | 431 | return value.nprint(writer); |
| 432 | 432 | } |
| 433 | 433 | |
| ... | ... | @@ -497,42 +497,6 @@ fn formatType(value: anytype, comptime fmt: []const u8, options: FormatOptions, |
| 497 | 497 | } |
| 498 | 498 | return; |
| 499 | 499 | }, |
| 500 | | .@"struct" => |info| { |
| 501 | | if (actual_fmt.len != 0) invalidFmtError(fmt, value); |
| 502 | | if (info.is_tuple) { |
| 503 | | // Skip the type and field names when formatting tuples. |
| 504 | | if (max_depth == 0) { |
| 505 | | return writer.writeAll("{ ... }"); |
| 506 | | } |
| 507 | | try writer.writeAll("{"); |
| 508 | | inline for (info.fields, 0..) |f, i| { |
| 509 | | if (i == 0) { |
| 510 | | try writer.writeAll(" "); |
| 511 | | } else { |
| 512 | | try writer.writeAll(", "); |
| 513 | | } |
| 514 | | try formatType(@field(value, f.name), "any", options, writer, max_depth - 1); |
| 515 | | } |
| 516 | | return writer.writeAll(" }"); |
| 517 | | } |
| 518 | | try writer.writeAll(@typeName(T)); |
| 519 | | if (max_depth == 0) { |
| 520 | | return writer.writeAll("{ ... }"); |
| 521 | | } |
| 522 | | try writer.writeAll("{"); |
| 523 | | inline for (info.fields, 0..) |f, i| { |
| 524 | | if (i == 0) { |
| 525 | | try writer.writeAll(" ."); |
| 526 | | } else { |
| 527 | | try writer.writeAll(", ."); |
| 528 | | } |
| 529 | | try writer.writeAll(f.name); |
| 530 | | try writer.writeAll(" = "); |
| 531 | | try formatType(@field(value, f.name), "any", options, writer, max_depth - 1); |
| 532 | | } |
| 533 | | try writer.writeAll(" }"); |
| 534 | | return; |
| 535 | | }, |
| 536 | 500 | .pointer => |ptr_info| switch (ptr_info.size) { |
| 537 | 501 | .one => switch (@typeInfo(ptr_info.child)) { |
| 538 | 502 | .array, .@"enum", .@"union", .@"struct" => { |