(t iterator)
| 784 | } |
| 785 | |
| 786 | func (f *filterQuery) do(t iterator) bool { |
| 787 | val := reflect.ValueOf(f.Predicate.Evaluate(t)) |
| 788 | switch val.Kind() { |
| 789 | case reflect.Bool: |
| 790 | return val.Bool() |
| 791 | case reflect.String: |
| 792 | return len(val.String()) > 0 |
| 793 | case reflect.Float64: |
| 794 | pt := getNodePosition(f.Input) |
| 795 | return int(val.Float()) == pt |
| 796 | default: |
| 797 | if f.Predicate != nil { |
| 798 | return f.Predicate.Select(t) != nil |
| 799 | } |
| 800 | } |
| 801 | return false |
| 802 | } |
| 803 | |
| 804 | func (f *filterQuery) position() int { |
| 805 | return f.posit |
no test coverage detected