std.io.Writer.printValue: rework logic
Alignment and fill options only apply to numbers. Rework the implementation to mainly branch on the format string rather than the type information. This is more straightforward to maintain and more straightforward for comptime evaluation. Enums support being printed as decimal, hexadecimal, octal, and binary. `formatInteger` is another possible format method that is unconditionally called when the value type is struct and one of the integer-printing format specifiers are used.
This commit is contained in:
@@ -469,7 +469,6 @@ pub fn WriteStream(
|
||||
/// * When option `emit_nonportable_numbers_as_strings` is true, if the value is outside the range `+-1<<53` (the precise integer range of f64), it is rendered as a JSON string in base 10. Otherwise, it is rendered as JSON number.
|
||||
/// * Zig floats -> JSON number or string.
|
||||
/// * If the value cannot be precisely represented by an f64, it is rendered as a JSON string. Otherwise, it is rendered as JSON number.
|
||||
/// * TODO: Float rendering will likely change in the future, e.g. to remove the unnecessary "e+00".
|
||||
/// * Zig `[]const u8`, `[]u8`, `*[N]u8`, `@Vector(N, u8)`, and similar -> JSON string.
|
||||
/// * See `StringifyOptions.emit_strings_as_arrays`.
|
||||
/// * If the content is not valid UTF-8, rendered as an array of numbers instead.
|
||||
|
||||
Reference in New Issue
Block a user