generatorset: make it possible to use gen as fastasc or fastdesc
We gain a parameter to inform that the generator is ascending or descending. If
the generator is ordered, it is also used for the `fastasc` or `fastdesc`
version.
The _ascgeneratorset and _descgeneratorset class will be removed soon.
--- a/mercurial/revset.py Fri Oct 03 03:19:00 2014 -0500
+++ b/mercurial/revset.py Fri Oct 03 12:36:08 2014 -0500
@@ -2622,7 +2622,7 @@
This class does not duck-type baseset and it's only supposed to be used
internally
"""
- def __init__(self, gen):
+ def __init__(self, gen, iterasc=None):
"""
gen: a generator producing the values for the generatorset.
"""
@@ -2630,6 +2630,11 @@
self._cache = {}
self._genlist = baseset([])
self._finished = False
+ if iterasc is not None:
+ if iterasc:
+ self.fastasc = self.__iter__
+ else:
+ self.fastdesc = self.__iter__
def __nonzero__(self):
for r in self: