feat(common): support collection-style access to YamlList and YamlMap - #30
Open
WhiredPlanck wants to merge 1 commit into
Open
feat(common): support collection-style access to YamlList and YamlMap #30WhiredPlanck wants to merge 1 commit into
WhiredPlanck wants to merge 1 commit into
Conversation
Make YamlList and YamlMap iterable, so collection functions like map() and associate() can be used directly on them instead of on their items or entries. YamlMap also gains mapKeys, mapValues, filterKeys, filterValues and getValue(key) extensions for the key-based operations that iteration cannot provide; filterKeys/filterValues return a YamlMap, the others return plain maps. All changes are additive — equality semantics and the existing public API are untouched.
WhiredPlanck
force-pushed
the
iterable-interface
branch
from
August 31, 2026 05:25
a07e4b7 to
3eb05f6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes
YamlListandYamlMapiterable, so collection functions likemap()andassociate()work on them directly instead of on.items/.entries.YamlMapadditionally getsmapKeys,mapValues,filterKeys,filterValuesandgetValue(key)extensions for the key-based operations that iteration can't express.The concrete code this enables:
This is a polishment of #24, I still implement
IterableforYamlMapbecause.associateis only available onIterable, and can reduce a lot of custom extension functions forYamlMap.