123456789101112131415161718192021222324252627282930313233343536 |
- namespace Invercargill {
- private class SortQuery<T> : BaseQuery<T, T> {
- private CompareDelegate<T> compare_func;
- public SortQuery(Enumerable<T> input, owned CompareDelegate<T> compare) {
- this.input = input;
- compare_func = (owned)compare;
- }
- // public override bool iterate_if (Invercargill.PredicateDelegate<T> handler) {
- // // Hack for now
- // var list = to_collection();
- // list.order_by ((a, b) => compare_func(a, b));
- // return gte<T>(list).iterate_if(handler);
- // }
- private class SortItem<T> {
- public CompareDelegate<T> compare_func;
- public T item;
- public SortItem(T item, CompareDelegate<T> func) {
- this.item = item;
- compare_func = (a, b) => func(a, b);
- }
- }
- public override Tracker<T> get_tracker() {
- // Hack for now
- var list = to_collection();
- list.order_by ((a, b) => compare_func(a, b));
- return gte<T>(list).get_tracker();
- }
- }
- }
|