freiksenet
11/30/2018, 1:12 PMclass SomethingOrError(object):
def __init__(self, it, is_error=None):
self._it = it
self._is_error = is_error
def chain(self, fn):
if is_error and self._is_error(self._it):
return self
else:
result = fn(self._it)
if isinstance(result, SomethingOrError):
return result
else:
return SomethingOrError(result)
def get(self):
return self._it