Function nextAllocMax [src]

See also std.json.Token for documentation of nextAlloc*() function behavior.

Prototype

pub fn nextAllocMax(self: *@This(), allocator: Allocator, when: AllocWhen, max_value_len: usize) Reader.AllocError!Token

Parameters

self: *@This()allocator: Allocatorwhen: AllocWhenmax_value_len: usize

Possible Errors

EndOfStream Error
OutOfMemory Error
ReadFailed Error

See the Reader implementation for detailed diagnostics.

SyntaxError Error
UnexpectedEndOfInput Error
ValueTooLong

Source

pub fn nextAllocMax(self: *@This(), allocator: Allocator, when: AllocWhen, max_value_len: usize) Reader.AllocError!Token { const token_type = try self.peekNextTokenType(); switch (token_type) { .number, .string => { var value_list = std.array_list.Managed(u8).init(allocator); errdefer { value_list.deinit(); } if (try self.allocNextIntoArrayListMax(&value_list, when, max_value_len)) |slice| { return if (token_type == .number) Token{ .number = slice } else Token{ .string = slice }; } else { return if (token_type == .number) Token{ .allocated_number = try value_list.toOwnedSlice() } else Token{ .allocated_string = try value_list.toOwnedSlice() }; } }, // Simple tokens never alloc. .object_begin, .object_end, .array_begin, .array_end, .true, .false, .null, .end_of_document, => return try self.next(), } }