Rename s/Searchable/Fast/

This commit is contained in:
Andrey Smirnov
2014-07-12 00:30:53 +04:00
parent c485cf41f7
commit 898870038a
+20 -20
View File
@@ -4,8 +4,8 @@ package deb
type PackageQuery interface { type PackageQuery interface {
// Matches calculates match of condition against package // Matches calculates match of condition against package
Matches(pkg *Package) bool Matches(pkg *Package) bool
// Searchable returns if search strategy is possible for this query // Fast returns if search strategy is possible for this query
Searchable() bool Fast() bool
// Query performs search on package list // Query performs search on package list
Query(list *PackageList) *PackageList Query(list *PackageList) *PackageList
} }
@@ -49,14 +49,14 @@ func (q *OrQuery) Matches(pkg *Package) bool {
return q.L.Matches(pkg) || q.R.Matches(pkg) return q.L.Matches(pkg) || q.R.Matches(pkg)
} }
// Searchable is true only if both parts are searchable // Fast is true only if both parts are fast
func (q *OrQuery) Searchable() bool { func (q *OrQuery) Fast() bool {
return q.L.Searchable() && q.R.Searchable() return q.L.Fast() && q.R.Fast()
} }
// Query strategy depends on nodes // Query strategy depends on nodes
func (q *OrQuery) Query(list *PackageList) (result *PackageList) { func (q *OrQuery) Query(list *PackageList) (result *PackageList) {
if q.Searchable() { if q.Fast() {
result = q.L.Query(list) result = q.L.Query(list)
result.Append(q.R.Query(list)) result.Append(q.R.Query(list))
} else { } else {
@@ -70,17 +70,17 @@ func (q *AndQuery) Matches(pkg *Package) bool {
return q.L.Matches(pkg) && q.R.Matches(pkg) return q.L.Matches(pkg) && q.R.Matches(pkg)
} }
// Searchable is true if any of the parts are searchable // Fast is true if any of the parts are fast
func (q *AndQuery) Searchable() bool { func (q *AndQuery) Fast() bool {
return q.L.Searchable() || q.R.Searchable() return q.L.Fast() || q.R.Fast()
} }
// Query strategy depends on nodes // Query strategy depends on nodes
func (q *AndQuery) Query(list *PackageList) (result *PackageList) { func (q *AndQuery) Query(list *PackageList) (result *PackageList) {
if !q.Searchable() { if !q.Fast() {
result = list.Scan(q) result = list.Scan(q)
} else { } else {
if q.L.Searchable() { if q.L.Fast() {
result = q.L.Query(list) result = q.L.Query(list)
result = result.Scan(q.R) result = result.Scan(q.R)
} else { } else {
@@ -96,12 +96,12 @@ func (q *NotQuery) Matches(pkg *Package) bool {
return !q.Q.Matches(pkg) return !q.Q.Matches(pkg)
} }
// Searchable is false // Fast is false
func (q *NotQuery) Searchable() bool { func (q *NotQuery) Fast() bool {
return false return false
} }
// NotQuery strategy is scan always // Query strategy is scan always
func (q *NotQuery) Query(list *PackageList) (result *PackageList) { func (q *NotQuery) Query(list *PackageList) (result *PackageList) {
result = list.Scan(q) result = list.Scan(q)
return return
@@ -117,8 +117,8 @@ func (q *FieldQuery) Query(list *PackageList) (result *PackageList) {
panic("not implemented yet") panic("not implemented yet")
} }
// Searchable depends on the query // Fast depends on the query
func (q *FieldQuery) Searchable() bool { func (q *FieldQuery) Fast() bool {
return false return false
} }
@@ -127,8 +127,8 @@ func (q *DependencyQuery) Matches(pkg *Package) bool {
return pkg.MatchesDependency(q.Dep) return pkg.MatchesDependency(q.Dep)
} }
// Searchable is always true for dependency query // Fast is always true for dependency query
func (q *DependencyQuery) Searchable() bool { func (q *DependencyQuery) Fast() bool {
return true return true
} }
@@ -147,8 +147,8 @@ func (q *PkgQuery) Matches(pkg *Package) bool {
return pkg.Name == q.Pkg && pkg.Version == q.Version && pkg.Architecture == q.Arch return pkg.Name == q.Pkg && pkg.Version == q.Version && pkg.Architecture == q.Arch
} }
// Searchable is always true for package query // Fast is always true for package query
func (q *PkgQuery) Searchable() bool { func (q *PkgQuery) Fast() bool {
return true return true
} }