Add node_type/yaml_version_type enum class APIs #388
Merged
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.
This PR has added two new enum classes,
node_type
andyaml_version_type
.They are added to replace existing
fkyaml::basic_node::node_t
andfkyaml::basic_node::yaml_version_t
type aliases whose aliased types are actually declared in thefkyaml::detail
(private) namespace but exposed to library users.The exposing of those enum classes as public APIs obscures the boundary between the
fkyaml
(public) andfkyaml::detail
(private) namespaces, which might also cause unexpected backward incompatibilities.To resolve the above issue, this PR has introduced the above two new enum classes, adding some APIs and deprecating some other APIs which uses the mentioned type aliases:
Although all the deprecated APIs still work as before except for compile-time deprecation warnings, it's highly recommended to replace those usages with new APIs since they're planned to be removed in version 0.4.0.
See the Deprecation notes in each deprecated API reference page for the migration guide.
Pull Request Checklist
Read the CONTRIBUTING.md file for detailed information.
Please don't
#ifdef
s or other means.