namespace Invercargill { private class TransformQuery : BaseQuery { private TransformDelegate transform_func; public TransformQuery(Enumerable input, owned TransformDelegate transform) { this.input = input; transform_func = (owned)transform; } // public override bool iterate_if (Invercargill.PredicateDelegate handler) { // return input.iterate_if(i => handler(transform_func(i))); // } public override Tracker to_tracker() { var tracker = input.to_tracker(); return new LambdaTracker( () => tracker.has_next(), () => transform_func(tracker.get_next()) ); } } }