Query strategy depends on nodes
(list PackageCatalog)
| 113 | |
| 114 | // Query strategy depends on nodes |
| 115 | func (q *AndQuery) Query(list PackageCatalog) (result *PackageList) { |
| 116 | if !q.Fast(list) { |
| 117 | result = list.Scan(q) |
| 118 | } else { |
| 119 | if q.L.Fast(list) { |
| 120 | result = q.L.Query(list) |
| 121 | result = result.Scan(q.R) |
| 122 | } else { |
| 123 | result = q.R.Query(list) |
| 124 | result = result.Scan(q.L) |
| 125 | } |
| 126 | } |
| 127 | return |
| 128 | } |
| 129 | |
| 130 | // String interface |
| 131 | func (q *AndQuery) String() string { |