diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2021-12-10 06:49:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-10 06:49:09 +0100 |
commit | 39f97ab86a776dd8acd58a79a660d0cfdb7068c0 (patch) | |
tree | 119b9f5b10f2fd1053c430e1891b0e33d927615b /utils/merkletrie/noder | |
parent | c71074e855b42c817c6ecb6cba7e6b62eafc08d3 (diff) | |
parent | f92011d95f98f5deea4959c7d432704a4300d3a8 (diff) | |
download | go-git-39f97ab86a776dd8acd58a79a660d0cfdb7068c0.tar.gz |
Merge pull request #410 from john-cai/jc-sparse
Worktree: Checkout, simplified sparse checkout
Diffstat (limited to 'utils/merkletrie/noder')
-rw-r--r-- | utils/merkletrie/noder/noder.go | 1 | ||||
-rw-r--r-- | utils/merkletrie/noder/noder_test.go | 1 | ||||
-rw-r--r-- | utils/merkletrie/noder/path.go | 8 |
3 files changed, 10 insertions, 0 deletions
diff --git a/utils/merkletrie/noder/noder.go b/utils/merkletrie/noder/noder.go index d6b3de4..6d22b8c 100644 --- a/utils/merkletrie/noder/noder.go +++ b/utils/merkletrie/noder/noder.go @@ -53,6 +53,7 @@ type Noder interface { // implement NumChildren in O(1) while Children is usually more // complex. NumChildren() (int, error) + Skip() bool } // NoChildren represents the children of a noder without children. diff --git a/utils/merkletrie/noder/noder_test.go b/utils/merkletrie/noder/noder_test.go index 5e014fe..ccebdc9 100644 --- a/utils/merkletrie/noder/noder_test.go +++ b/utils/merkletrie/noder/noder_test.go @@ -25,6 +25,7 @@ func (n noderMock) Name() string { return n.name } func (n noderMock) IsDir() bool { return n.isDir } func (n noderMock) Children() ([]Noder, error) { return n.children, nil } func (n noderMock) NumChildren() (int, error) { return len(n.children), nil } +func (n noderMock) Skip() bool { return false } // Returns a sequence with the noders 3, 2, and 1 from the // following diagram: diff --git a/utils/merkletrie/noder/path.go b/utils/merkletrie/noder/path.go index 1c7ef54..6c1d363 100644 --- a/utils/merkletrie/noder/path.go +++ b/utils/merkletrie/noder/path.go @@ -15,6 +15,14 @@ import ( // not be used. type Path []Noder +func (p Path) Skip() bool { + if len(p) > 0 { + return p.Last().Skip() + } + + return false +} + // String returns the full path of the final noder as a string, using // "/" as the separator. func (p Path) String() string { |