-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(kernel): add support for ConfigFile serialization #263
Merged
Conversation
This file contains 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
robertohuertasm
force-pushed
the
rob/feat/avoid-serializing-none
branch
from
March 12, 2024 19:14
ec637f5
to
5bddb29
Compare
jasonforal
reviewed
Mar 13, 2024
robertohuertasm
force-pushed
the
rob/feat/avoid-serializing-none
branch
from
March 13, 2024 19:21
c7df21c
to
8279b03
Compare
jasonforal
approved these changes
Mar 14, 2024
jacobotb
approved these changes
Mar 14, 2024
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.
What problem are you trying to solve?
I was trying to serialize a ConfigFile instance and expected to get a valid YAML file. Unfortunately, the serialization for the rulesets was not implemented resulting in an invalid YAML according to the schema of our configuration file.
What is your solution?
This PR adds support for proper serialization, ignoring both
Option::None
and some default values. This helps to avoid having values showingnull
,{}
or[]
Alternatives considered
What the reviewer should know
Added a few tests for the new functionality and a vscode debug configuration to help debugging the tests, if needed.
Also, I added a new crate called indexmap, which was needed to keep the insertion order of the keys in the maps. This is critical for serialization purposes as the
rulesets
array has a weird convention where the first key must be the ruleset name with a null value.