added sort support
This commit is contained in:
parent
558d6ae7d0
commit
1674abae73
5 changed files with 377 additions and 66 deletions
27
cmd/main.go
27
cmd/main.go
|
|
@ -29,14 +29,17 @@ type Filter []Example
|
|||
|
||||
func (v Filter) Len() int { return len(v) }
|
||||
func (v Filter) Index(i int) interface{} { return v[i] }
|
||||
func (v *Filter) Remove(i, j int) { *v = append((*v)[:i], (*v)[j:]...) }
|
||||
|
||||
//func (v Filter) Remove(i, j int) { v = append(v[:i], v[j:]...) }
|
||||
|
||||
func (v *Filter) Remove(i, j int) { *v = append((*v)[:i], (*v)[j:]...) }
|
||||
|
||||
// Example data
|
||||
var data = Filter{
|
||||
{"str1", 42, true, Struct1{"s1", Struct2{1}}},
|
||||
{"str3", 42, true, Struct1{"s3", Struct2{3}}},
|
||||
{"2str", 42, true, Struct1{"s2", Struct2{2}}},
|
||||
{"str3", 42, false, Struct1{"s3", Struct2{3}}},
|
||||
{":*", 42, false, Struct1{"s3", Struct2{3}}},
|
||||
{"str1", 42, false, Struct1{"s1", Struct2{1}}},
|
||||
{":*", 42, false, Struct1{"s4", Struct2{4}}},
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
|
@ -48,8 +51,22 @@ func main() {
|
|||
}
|
||||
}
|
||||
f, _ = filter.NewQuery("Struct.Struct.Int:1 Struct.Struct.Int:2 String::", filter.OR)
|
||||
f.Filter(&data)
|
||||
err := f.Filter(&data)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
for _, v := range data {
|
||||
fmt.Println("Interface:", v)
|
||||
}
|
||||
s, err := filter.NewQuery("sort:Bool:desc", filter.AND)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
err = s.Filter(&data)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
for _, v := range data {
|
||||
fmt.Println("Sort:", v)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue