v0.5.0 Unmapped reads any parsed value, UnknownKeys refuses what it names, decode errors name the key path
Test / test (push) Canceled after 0s
Test / test (push) Canceled after 0s
* Unmapped reads any parsed value; decode errors name the key path Unmapped(data, v) names the keys of a value Parse produced that no field of v's type takes, a table inside a document included, so a caller holding a tree (after macro expansion, say) can refuse them as a Document's caller does; Document.Unmapped calls it. A decode error names where it failed by the key path the document spells, rooms[1].width or by_key."a b".width, rather than by Go type and field names and "index n" / "map key" segments; a key that cannot be bare, or runs past 32 bytes, is quoted and cut as parse errors quote one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rsnp29663hDvPHPua37MhN * UnknownKeys, the error naming the keys a caller refuses A caller that refuses what Unmapped names returns UnknownKeys(keys), "unknown key \"a\"" or "unknown keys \"a\", \"b.c\"", so every refusal words them alike. vif's settings already format their own; its FSM dialect would be the second copy. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rsnp29663hDvPHPua37MhN --------- Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
1 parent
170e71f10a
commit
5c0a1c757a
5 files changed
+80
-16
No files matched your search
@@ -20,7 +20,10 @@ replace old containers. Existing pointer defaults are retained without writing
|
||||
through the original pointer. Fixed arrays require an exact input length.
|
||||
Tags use `toml:"name,omitempty"`; an empty tag name
|
||||
falls back to the Go field name. Matching is case sensitive. Unknown input keys
|
||||
and unexported fields are ignored.
|
||||
and unexported fields are ignored; `Unmapped(data, &target)` names the keys a
|
||||
parsed value holds that no field takes, and a caller refusing them returns
|
||||
`UnknownKeys(keys)`, which quotes each. A decode error names where it failed by
|
||||
the key path the document spells: `rooms[1].width: cannot convert string to int`.
|
||||
|
||||
## Values and conversions
|
||||
|
||||
@@ -121,7 +124,8 @@ split at the widest gap.
|
||||
- `Unmapped` names the keys no field of the destination takes, matched as `Decode`
|
||||
matches them (tags, then field names; unexported and `-` fields take nothing),
|
||||
each once and sorted. A map or interface destination takes every key under it;
|
||||
a key under an array of tables is named without its index.
|
||||
a key under an array of tables is named without its index. The function of the
|
||||
same name reads any value `Parse` produced, a table inside one included.
|
||||
- `Key` is a dotted path, one segment per part; `Key.String` spells it as a
|
||||
document would, quoting segments that need it.
|
||||
|
||||
|
||||
Reference in new issue
Block a user