GeeIterable.vala 640 B

1234567891011121314151617181920212223242526272829303132
  1. using Gee;
  2. namespace Invercargill.Wrappers {
  3. private class GeeIterable<T> : Enumerable<T> {
  4. private Iterable<T> iterable;
  5. public GeeIterable(Iterable<T> gee) {
  6. iterable = gee;
  7. }
  8. public override int? peek_count() {
  9. return null;
  10. }
  11. public override Tracker<T> get_tracker() {
  12. var iterator = iterable.iterator();
  13. return new LambdaTracker<T>(
  14. () => iterator.has_next(),
  15. () => {
  16. iterator.next();
  17. return iterator.get();
  18. });
  19. }
  20. }
  21. }