Like serialize, but recursive types are allowed.
It is the caller's responsibility to ensure that val does not contain cycles.
pub fn serializeArbitraryDepth(
val: anytype,
options: SerializeOptions,
writer: *Writer,
) Serializer.Error!void
pub fn serializeArbitraryDepth(
val: anytype,
options: SerializeOptions,
writer: *Writer,
) Serializer.Error!void {
var s: Serializer = .{
.writer = writer,
.options = .{ .whitespace = options.whitespace },
};
try s.valueArbitraryDepth(val, .{
.emit_codepoint_literals = options.emit_codepoint_literals,
.emit_strings_as_containers = options.emit_strings_as_containers,
.emit_default_optional_fields = options.emit_default_optional_fields,
});
}