mirror of
https://github.com/vbatts/go-mtree.git
synced 2025-10-04 04:31:00 +00:00
compare: export official way to modify InodeDelta.Diff
At the moment, filtering out keyword changes from an InodeDelta after doing Compare is a little complicated and error-prone. The simplest solution is to allow for callers to access a pointer to the underlying slice so it can be modified properly. The filtering logic in the gomtree command-line implicitly depends on the behaviour of InodeDelta.Diff -- DiffPtr would be a far more appropriate replacement. Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
This commit is contained in:
parent
d02f298ad4
commit
02df712987
2 changed files with 20 additions and 13 deletions
11
compare.go
11
compare.go
|
@ -77,6 +77,17 @@ func (i InodeDelta) Diff() []KeyDelta {
|
|||
return i.keys
|
||||
}
|
||||
|
||||
// DiffPtr returns a pointer to the internal slice that would be returned by
|
||||
// [InodeDelta.Diff]. This is intended to be used by tools which need to filter
|
||||
// aspects of [InodeDelta] entries. If the [DifferenceType] of the inode is not
|
||||
// [Modified], then DiffPtr returns nil.
|
||||
func (i *InodeDelta) DiffPtr() *[]KeyDelta {
|
||||
if i.diff == Modified {
|
||||
return &i.keys
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Old returns the value of the inode Entry in the "old" DirectoryHierarchy (as
|
||||
// determined by the ordering of parameters to Compare).
|
||||
func (i InodeDelta) Old() *Entry {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue