29 lines
521 B
Go
29 lines
521 B
Go
|
package splitstore
|
||
|
|
||
|
import (
|
||
|
cid "github.com/ipfs/go-cid"
|
||
|
)
|
||
|
|
||
|
// ObjectVisitor is an interface for deduplicating objects during walks
|
||
|
type ObjectVisitor interface {
|
||
|
Visit(cid.Cid) (bool, error)
|
||
|
}
|
||
|
|
||
|
type noopVisitor struct{}
|
||
|
|
||
|
var _ ObjectVisitor = (*noopVisitor)(nil)
|
||
|
|
||
|
func (v *noopVisitor) Visit(_ cid.Cid) (bool, error) {
|
||
|
return true, nil
|
||
|
}
|
||
|
|
||
|
type cidSetVisitor struct {
|
||
|
set *cid.Set
|
||
|
}
|
||
|
|
||
|
var _ ObjectVisitor = (*cidSetVisitor)(nil)
|
||
|
|
||
|
func (v *cidSetVisitor) Visit(c cid.Cid) (bool, error) {
|
||
|
return v.set.Visit(c), nil
|
||
|
}
|