petrbalvin
d00cbb983a
perf(parse): cut allocations and validate UTF-8 in the scan
...
Per-statement work no longer allocates where it does not need to: parseKeyPath returns the first key component directly, absolute paths and key buffers sit on the parser, the definition maps are created on first write, arrays presize, and a string without escapes is copied out in one piece instead of built byte by byte. Repeated keys share one string across array-of-tables elements through a parser-local intern table whose lookup works on the bytes, so a repeated key costs no allocation.
UTF-8 validity is no longer a whole-input pass before the parser runs: the scan validates where it meets a multi-byte sequence, and a SyntaxError now names the line the invalid byte sits on. TestParseRejectsInvalidUTF8 covers nine positions; docs/API.md describes the new reporting.
Long document: 67 664 to 31 765 allocations per parse, about 51 to about 106 MB/s; representative document: 157 to 104 allocations.
2026-09-20 22:15:10 +02:00
petrbalvin
72f8b21ac4
feat: parse into a Document that keeps order and comments
...
Test / test (push) Successful in 1m34s
Assisted-by: DeepSeek V4.1 Flash
2026-09-20 10:40:57 +02:00
petrbalvin
a6e3e3fe31
feat: add OffsetDateTime, nesting limits and uniform Marshaler dispatch
...
Test / test (push) Successful in 2m18s
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 19:36:24 +02:00
petrbalvin
b695b69768
docs(api): use an inline table sample that really breaks
...
Test / test (push) Successful in 1m33s
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 12:18:57 +02:00
petrbalvin
959eaba4b0
feat(encode): add the InlineTables option
...
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 12:18:30 +02:00
petrbalvin
8f85bb68fa
feat(encode): write the TOML 1.1 output form
...
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 12:18:18 +02:00
petrbalvin
0149a5b4d1
docs(encoder): correct the multi-line string claim
...
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 11:38:17 +02:00
petrbalvin
815141440e
feat: honour TextMarshaler and TextUnmarshaler by default
...
Test / test (push) Successful in 1m35s
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 02:41:09 +02:00
petrbalvin
8f0eae6604
docs: drop the TOML 1.0 compatibility promise
...
Assisted-by: DeepSeek V4.1 Flash
2026-09-19 02:24:24 +02:00
petrbalvin
1c7329aeea
build: move the module path to /v2
...
Test / test (push) Successful in 1m32s
Assisted-by: GLM 5.3 Flash
2026-09-19 00:14:39 +02:00
petrbalvin
8aa2b1b9c0
docs(api): name the newline a literal string may carry
...
Assisted-by: GLM 5.3 Flash
2026-09-18 00:20:42 +02:00
petrbalvin
81033bb27c
docs(api): document the TOML 1.1 acceptance
...
Assisted-by: GLM 5.3 Flash
2026-09-18 00:20:31 +02:00
petrbalvin
3c8ac859c0
fix(decode): report the smallest unknown field deterministically
...
Assisted-by: GLM 5.3
2026-09-17 23:11:38 +02:00
petrbalvin
4def1b3e8b
fix(encode): reject a nil MarshalTOML result
...
Assisted-by: GLM 5.3
2026-09-17 23:11:10 +02:00
petrbalvin
d5327568fb
fix(encode): keep a []any of tables in the value-array form
...
Assisted-by: GLM 5.3
2026-09-17 23:10:35 +02:00
petrbalvin
c485aab227
fix(decode): overflow-check uint and float32 destinations
...
Assisted-by: GLM 5.3
2026-09-17 23:10:24 +02:00
petrbalvin
ec0d7a0023
fix(encode): fall back from the literal multiline form when unsafe
...
Assisted-by: GLM 5.3
2026-09-17 23:06:25 +02:00
petrbalvin
d2fc31d260
feat: support TOML 1.1
...
Test / test (push) Successful in 1m32s
Assisted-by: GLM 5.3 Flash
2026-09-17 22:06:26 +02:00
petrbalvin
3f41266710
feat: typed decode and encode errors with the key path
...
Assisted-by: GLM 5.3 Flash
2026-09-17 21:20:47 +02:00
petrbalvin
fc50e3c49a
fix: decode untagged embedded structs and maps inline
...
Test / test (push) Successful in 1m26s
Assisted-by: GLM 5.3 Flash
2026-09-17 20:05:50 +02:00
petrbalvin
93c36cf376
feat: honour the omitzero and omitempty tag options on encode
...
Assisted-by: GLM 5.3 Flash
2026-09-17 19:57:23 +02:00
petrbalvin
3ac0b1e301
fix: encode mixed arrays with inline table elements
...
Assisted-by: GLM 5.3 Flash
2026-09-17 19:49:50 +02:00
petrbalvin
d12da6181d
docs: document set and changelog
...
Assisted-by: GLM 5.3 Flash
2026-08-19 18:44:00 +02:00