♻️ Refactor internal command data classes #358
+592
−51
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.
The new
CommandData
superclass usesData
(prereq: #352) to add the pattern matching and equality methods while also simplifying the implementation. Specifically, I wanted RawData#deconstruct for the basicESEARCH
support branch (#333). It seemed reasonable to apply the same change to all of the internal command data classes.Please note: this does change these objects to be frozen. However, these classes are explicitly undocumented (
:nodoc
), never returned by any public methods, and considered "internal", so this will not be treated as a "breaking change". I've extracted this from #333 into its own PR purely for documentation (release notes, etc).