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