revset: added operations to spanset to duck type baseset

Added more operations which are not lazy but only used so far to duck type
baseset.
This commit is contained in:
Lucas Moscovicz 2014-02-06 15:56:25 -08:00
parent e8f60a5520
commit 3a2188dac4

View File

@ -2159,5 +2159,27 @@ class spanset(object):
l = baseset(self)
return l + baseset(x)
def __len__(self):
return abs(self._end - self._start)
def __getitem__(self, x):
# Basic implementation to be changed in future patches.
l = baseset([r for r in self])
return l[x]
def sort(self, reverse=False):
# Basic implementation to be changed in future patches.
if reverse:
self.reverse()
def reverse(self):
if self._start <= self._end:
self._start, self._end = self._end - 1, self._start - 1
else:
self._start, self._end = self._end + 1, self._start + 1
def set(self):
return self
# tell hggettext to extract docstrings from these functions:
i18nfunctions = symbols.values()