Skip to content
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

Refactor deserialization process #331

Merged
merged 9 commits into from
Apr 30, 2024
Merged

Conversation

fktn-k
Copy link
Owner

@fktn-k fktn-k commented Apr 30, 2024

This PR has improved the internal implementation for the deserialization feature with the following changes:

  • The stacks of indentations and nodes were managed separately but are now handled as a single stack variable with context state types.
  • The values for tracking the current input position are now of the uint32_t type, not of the unnecessarily large size_t type which was used before with no convincing reason.
  • The traversal codes which find a parse context with a matching indentation have been improved by removing unnecessary traversals.
  • Unnecessary variables/type-aliasings are removed which became unused during previous refactorings of the lexer and the input/unicode handlings.

In addition, unnecesary node object instanciations are removed in the test cases for the deserializer.


Pull Request Checklist

Read the CONTRIBUTING.md file for detailed information.

  • Changes are described in the pull request or in a referenced issue.
  • The test suite compiles and runs without any error.
  • The code coverage on your branch is 100%.
  • The documentation is updated if you added/changed a feature.

Please don't

  • The C++11 support varies between different compilers and versions. Please note the list of supported compilers. Some compilers like GCC 4.7 (and earlier), Clang 3.3 (and earlier), or Microsoft Visual Studio 13.0 and earlier are known not to work due to missing or incomplete C++11 support. Please refrain from proposing changes that work around these compiler's limitations with #ifdefs or other means.
  • Please refrain from proposing changes that would break YAML specifications. If you propose a conformant extension of YAML to be supported by the library, please motivate this extension.
  • Please do not open pull requests that address multiple issues.

@fktn-k fktn-k added the improvement refactoring or optimization without public API changes label Apr 30, 2024
@fktn-k fktn-k added this to the Release v0.3.6 milestone Apr 30, 2024
@fktn-k fktn-k self-assigned this Apr 30, 2024
Copy link

:octocat: Upload Coverage Event Notification

Coverage data has been uploaded for the commit 8ec380dfe5add4565b3b99f8de7fc71e5a8d927a.
You can download the artifact which contains the same file uploaded to the Coveralls and its HTML version.

Name fkYAML_coverage.pr331.zip
ID 1461513543
URL https://github.com/fktn-k/fkYAML/actions/runs/8899336069/artifacts/1461513543

@coveralls
Copy link

Pull Request Test Coverage Report for Build 8899336069

Details

  • 155 of 155 (100.0%) changed or added relevant lines in 7 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 100.0%

Totals Coverage Status
Change from base Build 8882147308: 0.0%
Covered Lines: 3535
Relevant Lines: 3535

💛 - Coveralls

@fktn-k fktn-k merged commit 705a973 into develop Apr 30, 2024
162 checks passed
@fktn-k fktn-k deleted the refactor_deserialization_process branch April 30, 2024 18:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement refactoring or optimization without public API changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants