in lib/lib.go [241:264]
func (obj *Scanner) Init() error {
obj.wg = &sync.WaitGroup{}
obj.mu = &sync.Mutex{}
obj.results = make(interfaces.ResultSet)
obj.skipdirs = make(map[interfaces.Backend]map[string]struct{})
for _, backend := range obj.Backends {
_, ok1 := backend.(interfaces.DataBackend)
_, ok2 := backend.(interfaces.PathBackend)
_, ok3 := backend.(interfaces.RootBackend)
_, ok4 := backend.(interfaces.SeekBackend)
if !ok1 && !ok2 && !ok3 && !ok4 {
return fmt.Errorf("invalid backend: %s", backend.String())
}
if !ok1 && !ok2 { // TODO: remove this when we implement them!
return fmt.Errorf("the RootBackend and SeekBackend is not yet supported")
}
obj.skipdirs[backend] = make(map[string]struct{})
}
return nil
}