_ = try self.reader.streamDelimiterLimit(&self.line_writer.writer, '\n', .limited(4096)); assumes a limit on the value length. On my system, however, it is not large enough to be able to parse /nix/store/vmgkjwkllh6m4xz9nscm7qcnsh3r2m67-hicolor-icon-theme-0.18/share/icons/hicolor/index.theme (for me 16384 was large enough). A solution could be to make a method nextAlloc that takes an allocator (it should preferably work nicely with an arena); std.json does something similar in Scanner.
_ = try self.reader.streamDelimiterLimit(&self.line_writer.writer, '\n', .limited(4096));assumes a limit on the value length. On my system, however, it is not large enough to be able to parse/nix/store/vmgkjwkllh6m4xz9nscm7qcnsh3r2m67-hicolor-icon-theme-0.18/share/icons/hicolor/index.theme(for me16384was large enough). A solution could be to make a methodnextAllocthat takes an allocator (it should preferably work nicely with an arena);std.jsondoes something similar inScanner.