Marshal unmarshal by path #391
Open
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 introduces path-based operations for accessing and manipulating fields and subfields in ISO 8583 messages using dot notation (e.g., "3.2.1" or "11.1").
New interfaces:
field.PathMarshaler- marshal field values by pathfield.PathUnmarshaler- unmarshal field values by pathfield.PathUnsetter- unset fields by pathChanges:
MarshalPath(path string, value any)to Message and Composite - sets field values using path notationUnmarshalPath(path string, value any)to Message and Composite - retrieves field values using path notationUnsetPath(idPaths ...string)to Message and Composite - unsets fields using path notation (replaces deprecatedUnsetFields/UnsetSubfields)
UnsetPathmethods by ensuring field operations stay within mutex locksMessage.UnsetFields()andComposite.UnsetSubfields()in favor of UnsetPath()Example:
solves #383