aboutsummaryrefslogtreecommitdiff
path: root/mammoth/results.py
diff options
context:
space:
mode:
Diffstat (limited to 'mammoth/results.py')
-rw-r--r--mammoth/results.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/mammoth/results.py b/mammoth/results.py
index f735df7..ab29b25 100644
--- a/mammoth/results.py
+++ b/mammoth/results.py
@@ -1,4 +1,36 @@
+import collections
+
+
class Result(object):
def __init__(self, value, messages):
self.value = value
self.messages = messages
+
+ def map(self, func):
+ return Result(func(self.value), self.messages)
+
+ #~ def bind(self, func):
+ #~ result = func(self.value)
+ #~ return Result(result.value, self.messages + result.messages)
+
+
+Message = collections.namedtuple("Message", ["type", "message"])
+
+
+def warning(message):
+ return Message("warning", message)
+
+
+def success(value):
+ return Result(value, [])
+
+
+def combine(results):
+ values = []
+ messages = []
+ for result in results:
+ values.append(result.value)
+ for message in result.messages:
+ messages.append(message)
+
+ return Result(values, messages)