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