Răsfoiți Sursa

Added CustomStringConvertible and CustomDebugStringConvertible conformance.

Christian Noon 10 ani în urmă
părinte
comite
09fc146b08
1 a modificat fișierele cu 33 adăugiri și 0 ștergeri
  1. 33 0
      Source/Result.swift

+ 33 - 0
Source/Result.swift

@@ -79,3 +79,36 @@ public enum Result<Value> {
         }
     }
 }
+
+// MARK: - CustomStringConvertible
+
+extension Result: CustomStringConvertible {
+    public var description: String {
+        switch self {
+        case .Success:
+            return "SUCCESS"
+        case .Failure:
+            return "FAILURE"
+        }
+    }
+}
+
+// MARK: - CustomDebugStringConvertible
+
+extension Result: CustomDebugStringConvertible {
+    public var debugDescription: String {
+        switch self {
+        case .Success(let value):
+            return "SUCCESS: \(value)"
+        case .Failure(let data, let error):
+            if let
+                data = data,
+                utf8Data = NSString(data: data, encoding: NSUTF8StringEncoding)
+            {
+                return "FAILURE: \(error) \(utf8Data)"
+            } else {
+                return "FAILURE with Error: \(error)"
+            }
+        }
+    }
+}