tiny.pretty.json
Defined in tiny.pretty.
Deterministic JSON escaping, tree rendering, and allocation-free streaming.
API (78)
Actions
Public operations.
Array.arrayArray.base64StringArray.byteStringArray.elementArray.endArray.endLineArray.formattedStringArray.hexStringArray.objectArray.printArray.rawArray.stringPartsObject.arrayObject.base64StringObject.byteStringObject.endObject.endLineObject.fieldObject.fieldPartsObject.fieldsObject.formattedArrayObject.formattedFieldObject.formattedObjectObject.formattedStringObject.hexStringObject.objectObject.printObject.rawObject.stringPartsWriter.arrayWriter.base64StringWriter.beginArrayWriter.beginObjectWriter.beginRawWriter.byteStringWriter.endArrayWriter.endObjectWriter.endRawWriter.formattedStringWriter.hexStringWriter.initWriter.newlineWriter.objectWriter.objectFieldWriter.printWriter.rawWriter.stringPartsWriter.writerenderIndentedAllocrenderMinifiedAllocrenderMinifiedLineAllocrenderSortedMinifiedAllocrenderValueAllocstringAllocvalueDocwriteBoolwriteFieldBoolwriteFieldIntwriteFieldNamewriteFieldOptionalStringwriteFieldRawwriteFieldStringwriteIndentedwriteIntwriteMinifiedwriteMinifiedLinewriteNullwriteNumberStringwriteSortedMinifiedwriteStringwriteStringPartswriteValuewriteValueWithState
Types and contracts
Public types and contracts.
Array: An open array scope on oneWriter.FieldObject: An open object scope on oneWriter.StyleWriter: Streams one JSON value at a time without intermediate string allocations.
Source
Source: lib/pretty/core/src/json/field.zig:5
pub const Field = struct { first: bool = false,};Source: lib/pretty/core/src/json/format.zig:3
pub const Style = enum { minified, indent_2,};Source: lib/pretty/core/src/json/stream.zig:143
/// An open array scope on one `Writer`./// Nested scopes share the writer and must end before their parent continues.pub const Array = struct { writer: *Writer, pub fn element(self: Array, value: anytype) !void { try self.writer.write(value); } pub fn object(self: Array) !Object { return try self.writer.object(); } pub fn array(self: Array) !Array { return try self.writer.array(); } pub fn stringParts(self: Array, parts: []const []const u8) !void { try self.writer.stringParts(parts); } pub fn byteString(self: Array, bytes: []const u8) !void { try self.writer.byteString(bytes); } pub fn hexString(self: Array, bytes: []const u8) !void { try self.writer.hexString(bytes); } pub fn base64String(self: Array, bytes: []const u8) !void { try self.writer.base64String(bytes); } pub fn formattedString( self: Array, comptime capacity: usize, comptime fmt: []const u8, args: anytype, ) !void { try self.writer.formattedString(capacity, fmt, args); } pub fn raw(self: Array, value: []const u8) !void { try self.writer.raw(value); } pub fn print(self: Array, comptime fmt: []const u8, args: anytype) !void { try self.writer.print(fmt, args); } pub fn end(self: Array) !void { try self.writer.endArray(); } pub fn endLine(self: Array) !void { try self.end(); try self.writer.newline(); }};Source: lib/pretty/core/src/json/stream.zig:7
/// An open object scope on one `Writer`./// Nested scopes share the writer and must end before their parent continues.pub const Object = struct { writer: *Writer, pub fn field(self: Object, name: []const u8, value: anytype) !void { try self.writer.objectField(name); try self.writer.write(value); } pub fn fields(self: Object, values: anytype) !void { const info = switch (@typeInfo(@TypeOf(values))) { .@"struct" => |value| value, else => @compileError("JSON object fields require a named struct"), }; if (info.is_tuple) { @compileError("JSON object fields require a named struct"); } inline for (info.field_names) |name| { try self.field(name, @field(values, name)); } } pub fn fieldParts( self: Object, name_parts: []const []const u8, value: anytype, ) !void { try self.writer.objectFieldParts(name_parts); try self.writer.write(value); } pub fn formattedField( self: Object, comptime capacity: usize, comptime fmt: []const u8, args: anytype, value: anytype, ) !void { var buffer: [capacity]u8 = undefined; const name = try std.fmt.bufPrint(&buffer, fmt, args); try self.field(name, value); } pub fn object(self: Object, name: []const u8) !Object { try self.writer.objectField(name); return try self.writer.object(); } pub fn formattedObject( self: Object, comptime capacity: usize, comptime fmt: []const u8, args: anytype, ) !Object { var buffer: [capacity]u8 = undefined; const name = try std.fmt.bufPrint(&buffer, fmt, args); return try self.object(name); } pub fn array(self: Object, name: []const u8) !Array { try self.writer.objectField(name); return try self.writer.array(); } pub fn formattedArray( self: Object, comptime capacity: usize, comptime fmt: []const u8, args: anytype, ) !Array { var buffer: [capacity]u8 = undefined; const name = try std.fmt.bufPrint(&buffer, fmt, args); return try self.array(name); } pub fn stringParts( self: Object, name: []const u8, parts: []const []const u8, ) !void { try self.writer.objectField(name); try self.writer.stringParts(parts); } pub fn byteString(self: Object, name: []const u8, bytes: []const u8) !void { try self.writer.objectField(name); try self.writer.byteString(bytes); } pub fn hexString(self: Object, name: []const u8, bytes: []const u8) !void { try self.writer.objectField(name); try self.writer.hexString(bytes); } pub fn base64String(self: Object, name: []const u8, bytes: []const u8) !void { try self.writer.objectField(name); try self.writer.base64String(bytes); } pub fn formattedString( self: Object, name: []const u8, comptime capacity: usize, comptime fmt: []const u8, args: anytype, ) !void { try self.writer.objectField(name); try self.writer.formattedString(capacity, fmt, args); } pub fn raw(self: Object, name: []const u8, value: []const u8) !void { try self.writer.objectField(name); try self.writer.raw(value); } pub fn print( self: Object, name: []const u8, comptime fmt: []const u8, args: anytype, ) !void { try self.writer.objectField(name); try self.writer.print(fmt, args); } pub fn end(self: Object) !void { try self.writer.endObject(); } pub fn endLine(self: Object) !void { try self.end(); try self.writer.newline(); }};Source: lib/pretty/core/src/json/stream.zig:203
/// Streams one JSON value at a time without intermediate string allocations./// `newline` resets completed top-level state so the same writer can emit JSONL.pub const Writer = struct { stringify: std.json.Stringify, pub fn init(writer: *std.Io.Writer, style: format.Style) Writer { return .{ .stringify = .{ .writer = writer, .options = format.stringifyOptions(style), } }; } pub fn beginObject(self: *Writer) !void { try self.stringify.beginObject(); } pub fn object(self: *Writer) !Object { try self.beginObject(); return .{ .writer = self }; } pub fn endObject(self: *Writer) !void { try self.stringify.endObject(); } pub fn objectField(self: *Writer, name: []const u8) !void { try self.stringify.objectField(name); } fn objectFieldParts(self: *Writer, parts: []const []const u8) !void { try self.stringify.beginObjectFieldRaw(); try escape.writeStringParts(self.stringify.writer, parts); self.stringify.endObjectFieldRaw(); } pub fn beginArray(self: *Writer) !void { try self.stringify.beginArray(); } pub fn array(self: *Writer) !Array { try self.beginArray(); return .{ .writer = self }; } pub fn endArray(self: *Writer) !void { try self.stringify.endArray(); } pub fn write(self: *Writer, value: anytype) !void { try self.stringify.write(value); } pub fn stringParts(self: *Writer, parts: []const []const u8) !void { const raw_writer = try self.beginRaw(); try escape.writeStringParts(raw_writer, parts); self.endRaw(); } pub fn byteString(self: *Writer, bytes: []const u8) !void { const raw_writer = try self.beginRaw(); try escape.writeByteString(raw_writer, bytes); self.endRaw(); } pub fn hexString(self: *Writer, bytes: []const u8) !void { const hex = "0123456789abcdef"; const raw_writer = try self.beginRaw(); try raw_writer.writeByte('"'); for (bytes) |byte| { try raw_writer.writeByte(hex[byte >> 4]); try raw_writer.writeByte(hex[byte & 0x0f]); } try raw_writer.writeByte('"'); self.endRaw(); } pub fn base64String(self: *Writer, bytes: []const u8) !void { const raw_writer = try self.beginRaw(); try raw_writer.writeByte('"'); try std.base64.standard.Encoder.encodeWriter(raw_writer, bytes); try raw_writer.writeByte('"'); self.endRaw(); } pub fn formattedString( self: *Writer, comptime capacity: usize, comptime fmt: []const u8, args: anytype, ) !void { if (capacity == 0) @compileError("formatted JSON string capacity must be positive"); var buffer: [capacity]u8 = undefined; try self.write(try std.fmt.bufPrint(&buffer, fmt, args)); } pub fn raw(self: *Writer, value: []const u8) !void { try self.stringify.beginWriteRaw(); try self.stringify.writer.writeAll(value); self.stringify.endWriteRaw(); } pub fn beginRaw(self: *Writer) !*std.Io.Writer { try self.stringify.beginWriteRaw(); return self.stringify.writer; } pub fn endRaw(self: *Writer) void { self.stringify.endWriteRaw(); } pub fn print(self: *Writer, comptime fmt: []const u8, args: anytype) !void { try self.stringify.print(fmt, args); } pub fn newline(self: *Writer) !void { try self.stringify.writer.writeByte('\n'); if (self.stringify.indent_level != 0) return; if (self.stringify.next_punctuation != .comma) return; self.stringify = .{ .writer = self.stringify.writer, .options = self.stringify.options, }; }};Source: lib/pretty/core/src/json/document.zig:25
pub fn renderValueAlloc( allocator: std.mem.Allocator, value: std.json.Value, options: LayoutOptions,) ![]u8 { var arena_state = std.heap.ArenaAllocator.init(allocator); defer arena_state.deinit(); const builder = Builder.init(arena_state.allocator()); return try pretty.renderAlloc(allocator, try valueDoc(builder, value), options);}Source: lib/pretty/core/src/json/document.zig:12
pub fn valueDoc(builder: Builder, value: std.json.Value) anyerror!Doc { return switch (value) { .null => try builder.styledText(.keyword, "null"), .bool => |item| try builder.styledText(.keyword, if (item) "true" else "false"), .integer => |item| try builder.styledFmt(.number, "{d}", .{item}), .float => |item| try builder.styledFmt(.number, "{d}", .{item}), .number_string => |item| try builder.styledText(.number, item), .string => |item| try builder.styledText(.string, try escape.stringAlloc(builder.allocator, item)), .array => |items| try arrayDoc(builder, items.items), .object => |object| try objectDoc(builder, object), };}Source: lib/pretty/core/src/json/document.zig:36
pub fn writeValue( writer: anytype, allocator: std.mem.Allocator, value: std.json.Value, options: LayoutOptions,) !void { try writeValueWithState(writer, allocator, value, options, .{});}Source: lib/pretty/core/src/json/document.zig:45
pub fn writeValueWithState( writer: anytype, allocator: std.mem.Allocator, value: std.json.Value, options: LayoutOptions, state: WriteState,) !void { var arena_state = std.heap.ArenaAllocator.init(allocator); defer arena_state.deinit(); const builder = Builder.init(arena_state.allocator()); try pretty.writeWithState(writer, try valueDoc(builder, value), options, state);}Source: lib/pretty/core/src/json/escape.zig:42
pub fn stringAlloc(allocator: std.mem.Allocator, value: []const u8) ![]const u8 { return try std.json.Stringify.valueAlloc(allocator, value, .{});}Source: lib/pretty/core/src/json/escape.zig:3
pub fn writeString(writer: anytype, value: []const u8) !void { try std.json.Stringify.value(value, .{}, writer);}Source: lib/pretty/core/src/json/escape.zig:7
pub fn writeStringParts(writer: anytype, parts: []const []const u8) !void { for (parts) |part| { if (!std.unicode.utf8ValidateSlice(part)) return error.InvalidUtf8; } try writer.writeByte('"'); for (parts) |part| try writeStringContent(writer, part); try writer.writeByte('"');}Source: lib/pretty/core/src/json/field.zig:25
pub fn writeFieldBool(writer: anytype, name: []const u8, value: bool, field: Field) !void { try writeFieldName(writer, name, field); try scalar.writeBool(writer, value);}Source: lib/pretty/core/src/json/field.zig:30
pub fn writeFieldInt(writer: anytype, name: []const u8, value: anytype, field: Field) !void { try writeFieldName(writer, name, field); try scalar.writeInt(writer, value);}Source: lib/pretty/core/src/json/field.zig:9
pub fn writeFieldName(writer: anytype, name: []const u8, field: Field) !void { if (!field.first) try writer.writeByte(','); try escape.writeString(writer, name); try writer.writeByte(':');}Source: lib/pretty/core/src/json/field.zig:20
pub fn writeFieldOptionalString(writer: anytype, name: []const u8, value: ?[]const u8, field: Field) !void { try writeFieldName(writer, name, field); if (value) |inner| try escape.writeString(writer, inner) else try scalar.writeNull(writer);}Source: lib/pretty/core/src/json/field.zig:35
pub fn writeFieldRaw(writer: anytype, name: []const u8, raw_json: []const u8, field: Field) !void { try writeFieldName(writer, name, field); try writer.writeAll(raw_json);}Source: lib/pretty/core/src/json/field.zig:15
pub fn writeFieldString(writer: anytype, name: []const u8, value: []const u8, field: Field) !void { try writeFieldName(writer, name, field); try escape.writeString(writer, value);}Source: lib/pretty/core/src/json/format.zig:48
pub fn renderIndentedAlloc(allocator: std.mem.Allocator, value: anytype) ![]u8 { var out: std.Io.Writer.Allocating = .init(allocator); errdefer out.deinit(); try writeIndented(&out.writer, value); return try out.toOwnedSlice();}Source: lib/pretty/core/src/json/format.zig:24
pub fn renderMinifiedAlloc( allocator: std.mem.Allocator, value: anytype,) std.mem.Allocator.Error![]u8 { var out: std.Io.Writer.Allocating = .init(allocator); errdefer out.deinit(); writeMinified(&out.writer, value) catch return error.OutOfMemory; return try out.toOwnedSlice();}Source: lib/pretty/core/src/json/format.zig:34
pub fn renderMinifiedLineAlloc( allocator: std.mem.Allocator, value: anytype,) std.mem.Allocator.Error![]u8 { var out: std.Io.Writer.Allocating = .init(allocator); errdefer out.deinit(); writeMinifiedLine(&out.writer, value) catch return error.OutOfMemory; return try out.toOwnedSlice();}Source: lib/pretty/core/src/json/format.zig:44
pub fn writeIndented(writer: anytype, value: anytype) !void { try std.json.Stringify.value(value, stringifyOptions(.indent_2), writer);}Source: lib/pretty/core/src/json/format.zig:15
pub fn writeMinified(writer: anytype, value: anytype) !void { try std.json.Stringify.value(value, stringifyOptions(.minified), writer);}Source: lib/pretty/core/src/json/format.zig:19
pub fn writeMinifiedLine(writer: anytype, value: anytype) !void { try writeMinified(writer, value); try writer.writeByte('\n');}Source: lib/pretty/core/src/json/scalar.zig:5
pub fn writeBool(writer: anytype, value: bool) !void { try writer.writeAll(if (value) "true" else "false");}Source: lib/pretty/core/src/json/scalar.zig:9
pub fn writeInt(writer: anytype, value: anytype) !void { try writer.print("{d}", .{value});}Source: lib/pretty/core/src/json/scalar.zig:1
pub fn writeNull(writer: anytype) !void { try writer.writeAll("null");}Source: lib/pretty/core/src/json/scalar.zig:13
pub fn writeNumberString(writer: anytype, value: []const u8) !void { try writer.writeAll(value);}Source: lib/pretty/core/src/json/sort.zig:49
pub fn renderSortedMinifiedAlloc(allocator: std.mem.Allocator, value: std.json.Value) ![]u8 { var out: std.Io.Writer.Allocating = .init(allocator); errdefer out.deinit(); try writeSortedMinified(&out.writer, allocator, value); return try out.toOwnedSlice();}Source: lib/pretty/core/src/json/sort.zig:10
pub fn writeSortedMinified(writer: anytype, allocator: std.mem.Allocator, value: std.json.Value) !void { switch (value) { .null => try scalar.writeNull(writer), .bool => |inner| try scalar.writeBool(writer, inner), .integer => |inner| try scalar.writeInt(writer, inner), .float => |inner| try writer.print("{d}", .{inner}), .number_string => |inner| try scalar.writeNumberString(writer, inner), .string => |inner| try escape.writeString(writer, inner), .array => |inner| { try writer.writeByte('['); for (inner.items, 0..) |item, index| { if (index != 0) try writer.writeByte(','); try writeSortedMinified(writer, allocator, item); } try writer.writeByte(']'); }, .object => |inner| { var entries: std.ArrayList(Entry) = .empty; defer entries.deinit(allocator); var iterator = inner.iterator(); while (iterator.next()) |entry| { try entries.append(allocator, .{ .key = entry.key_ptr.*, .value = entry.value_ptr, }); } std.sort.insertion(Entry, entries.items, {}, lessEntry); try writer.writeByte('{'); for (entries.items, 0..) |entry, index| { if (index != 0) try writer.writeByte(','); try escape.writeString(writer, entry.key); try writer.writeByte(':'); try writeSortedMinified(writer, allocator, entry.value.*); } try writer.writeByte('}'); }, }}Source: lib/pretty/core/src/json/root.zig
//! Deterministic JSON escaping, tree rendering, and allocation-free streaming.//! Streaming scopes own punctuation and escaping; callers close every scope with `end`.const document = @import("document.zig");const escape = @import("escape.zig");const field = @import("field.zig");const format = @import("format.zig");const scalar = @import("scalar.zig");const sort = @import("sort.zig");const stream = @import("stream.zig");pub const Field = field.Field;pub const Style = format.Style;pub const Writer = stream.Writer;pub const Object = stream.Object;pub const Array = stream.Array;pub const writeString = escape.writeString;pub const writeStringParts = escape.writeStringParts;pub const stringAlloc = escape.stringAlloc;pub const writeMinified = format.writeMinified;pub const writeMinifiedLine = format.writeMinifiedLine;pub const renderMinifiedAlloc = format.renderMinifiedAlloc;pub const renderMinifiedLineAlloc = format.renderMinifiedLineAlloc;pub const writeIndented = format.writeIndented;pub const renderIndentedAlloc = format.renderIndentedAlloc;pub const writeSortedMinified = sort.writeSortedMinified;pub const renderSortedMinifiedAlloc = sort.renderSortedMinifiedAlloc;pub const writeNull = scalar.writeNull;pub const writeBool = scalar.writeBool;pub const writeInt = scalar.writeInt;pub const writeNumberString = scalar.writeNumberString;pub const writeFieldName = field.writeFieldName;pub const writeFieldString = field.writeFieldString;pub const writeFieldOptionalString = field.writeFieldOptionalString;pub const writeFieldBool = field.writeFieldBool;pub const writeFieldInt = field.writeFieldInt;pub const writeFieldRaw = field.writeFieldRaw;pub const valueDoc = document.valueDoc;pub const renderValueAlloc = document.renderValueAlloc;pub const writeValue = document.writeValue;pub const writeValueWithState = document.writeValueWithState;Source: lib/pretty/core/src/root.zig:105
pub const json = @import("json/root.zig");Complete caller list for json.Writer.init
13 direct callers.
lib.pretty.core.src.json.stream.test_Object_formats_and_escapes_field_names_without_allocation[function] — test source atlib/pretty/core/src/json/stream.zig:504in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Object_writes_named_struct_fields_in_declaration_order[function] — test source atlib/pretty/core/src/json/stream.zig:487in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_composes_large_nested_records_through_object_and_array_scopes[function] — test source atlib/pretty/core/src/json/stream.zig:462in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_formats_bounded_string_values_without_allocating[function] — test source atlib/pretty/core/src/json/stream.zig:446in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_inserts_raw_values_and_string_parts[function] — test source atlib/pretty/core/src/json/stream.zig:385in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_keeps_document_state_across_a_newline_inside_a_value[function] — test source atlib/pretty/core/src/json/stream.zig:342in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_prints_raw_formatted_JSON_values[function] — test source atlib/pretty/core/src/json/stream.zig:374in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_scope_formatting_indents_nested_records[function] — test source atlib/pretty/core/src/json/stream.zig:523in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_arbitrary_byte_strings_through_every_container[function] — test source atlib/pretty/core/src/json/stream.zig:398in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_byte_slices_as_base64_strings[function] — test source atlib/pretty/core/src/json/stream.zig:430in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_byte_slices_as_lowercase_hexadecimal_strings[function] — test source atlib/pretty/core/src/json/stream.zig:414in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_minified_machine_JSON[function] — test source atlib/pretty/core/src/json/stream.zig:358in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_one_JSON_document_per_JSONL_line[function] — test source atlib/pretty/core/src/json/stream.zig:326in nearest public ownerlib.pretty.core.src.json.stream
Complete caller list for json.Writer.object
12 direct callers.
tiny.pretty.json.Array.object[method] atlib/pretty/core/src/json/stream.zig:150tiny.pretty.json.Object.object[method] atlib/pretty/core/src/json/stream.zig:49lib.pretty.core.src.json.stream.test_Object_formats_and_escapes_field_names_without_allocation[function] — test source atlib/pretty/core/src/json/stream.zig:504in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Object_writes_named_struct_fields_in_declaration_order[function] — test source atlib/pretty/core/src/json/stream.zig:487in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_composes_large_nested_records_through_object_and_array_scopes[function] — test source atlib/pretty/core/src/json/stream.zig:462in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_formats_bounded_string_values_without_allocating[function] — test source atlib/pretty/core/src/json/stream.zig:446in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_keeps_document_state_across_a_newline_inside_a_value[function] — test source atlib/pretty/core/src/json/stream.zig:342in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_scope_formatting_indents_nested_records[function] — test source atlib/pretty/core/src/json/stream.zig:523in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_arbitrary_byte_strings_through_every_container[function] — test source atlib/pretty/core/src/json/stream.zig:398in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_byte_slices_as_base64_strings[function] — test source atlib/pretty/core/src/json/stream.zig:430in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_byte_slices_as_lowercase_hexadecimal_strings[function] — test source atlib/pretty/core/src/json/stream.zig:414in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_one_JSON_document_per_JSONL_line[function] — test source atlib/pretty/core/src/json/stream.zig:326in nearest public ownerlib.pretty.core.src.json.stream
Complete caller list for json.Writer.objectField
13 direct callers.
tiny.pretty.json.Object.array[method] atlib/pretty/core/src/json/stream.zig:65tiny.pretty.json.Object.base64String[method] atlib/pretty/core/src/json/stream.zig:100tiny.pretty.json.Object.byteString[method] atlib/pretty/core/src/json/stream.zig:90tiny.pretty.json.Object.field[method] atlib/pretty/core/src/json/stream.zig:10tiny.pretty.json.Object.formattedString[method] atlib/pretty/core/src/json/stream.zig:105tiny.pretty.json.Object.hexString[method] atlib/pretty/core/src/json/stream.zig:95tiny.pretty.json.Object.object[method] atlib/pretty/core/src/json/stream.zig:49tiny.pretty.json.Object.print[method] atlib/pretty/core/src/json/stream.zig:121tiny.pretty.json.Object.raw[method] atlib/pretty/core/src/json/stream.zig:116tiny.pretty.json.Object.stringParts[method] atlib/pretty/core/src/json/stream.zig:81lib.pretty.core.src.json.stream.test_Writer_inserts_raw_values_and_string_parts[function] — test source atlib/pretty/core/src/json/stream.zig:385in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_prints_raw_formatted_JSON_values[function] — test source atlib/pretty/core/src/json/stream.zig:374in nearest public ownerlib.pretty.core.src.json.streamlib.pretty.core.src.json.stream.test_Writer_streams_minified_machine_JSON[function] — test source atlib/pretty/core/src/json/stream.zig:358in nearest public ownerlib.pretty.core.src.json.stream
Audit
| Definitions | 79 |
|---|---|
| Public names | 79 |
| Members | 6 |
| Version | 26.7.0 |
| Revision | daab053ee433 |