examples: add parsing to an object example

This commit is contained in:
2023-10-22 15:36:34 -07:00
parent cca7d61666
commit 6d2c08878d
4 changed files with 96 additions and 6 deletions

View File

@@ -65,6 +65,7 @@ pub const buffers = @import("./linebuffer.zig");
pub const tokenizer = @import("./tokenizer.zig");
pub const parser = @import("./parser.zig");
pub const parseBuffer = parser.parseBuffer;
pub const parseBufferTo = parser.parseBufferTo;
pub const StreamParser = parser.StreamParser;
pub const Document = parser.Document;
pub const Value = parser.Value;

View File

@@ -67,14 +67,14 @@ pub const Value = union(enum) {
inline .scalar, .string => |str, tag| {
if (tag == .string and !options.coerce_strings) return error.BadValue;
if (options.case_insensitive_scalar_coersion) {
for (options.boolean_strings.truthy) |check|
for (options.boolean_scalars.truthy) |check|
if (std.ascii.eqlIgnoreCase(str, check)) return true;
for (options.boolean_strings.falsy) |check|
for (options.boolean_scalars.falsy) |check|
if (std.ascii.eqlIgnoreCase(str, check)) return false;
} else {
for (options.boolean_strings.truthy) |check|
for (options.boolean_scalars.truthy) |check|
if (std.mem.eql(u8, str, check)) return true;
for (options.boolean_strings.falsy) |check|
for (options.boolean_scalars.falsy) |check|
if (std.mem.eql(u8, str, check)) return false;
}
@@ -260,10 +260,10 @@ pub const Value = union(enum) {
inline .scalar, .string => |str, tag| {
if (tag == .string and !options.coerce_strings) return error.BadValue;
if (options.case_insensitive_scalar_coersion) {
for (options.null_strings) |check|
for (options.null_scalars) |check|
if (std.ascii.eqlIgnoreCase(str, check)) return null;
} else {
for (options.null_strings) |check|
for (options.null_scalars) |check|
if (std.mem.eql(u8, str, check)) return null;
}