0001 // Result.swift 0002 // 0003 // Copyright (c) 2014–2016 Alamofire Software Foundation (http://alamofire.org/) 0004 // 0005 // Permission is hereby granted, free of charge, to any person obtaining a copy 0006 // of this software and associated documentation files (the "Software"), to deal 0007 // in the Software without restriction, including without limitation the rights 0008 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 0009 // copies of the Software, and to permit persons to whom the Software is 0010 // furnished to do so, subject to the following conditions: 0011 // 0012 // The above copyright notice and this permission notice shall be included in 0013 // all copies or substantial portions of the Software. 0014 // 0015 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 0016 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 0017 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 0018 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 0019 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 0020 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 0021 // THE SOFTWARE. 0022 0023 import Foundation 0024 0025 /** 0026 Used to represent whether a request was successful or encountered an error. 0027 0028 - Success: The request and all post processing operations were successful resulting in the serialization of the 0029 provided associated value. 0030 - Failure: The request encountered an error resulting in a failure. The associated values are the original data 0031 provided by the server as well as the error that caused the failure. 0032 */ 0033 public enum Result<Value
Response.swift:37 public let result: Result<Value, Error>Response.swift:58 result: Result<Value, Error>,ResponseSerialization.swift:40 var serializeResponse: (NSURLRequest?, NSHTTPURLResponse?, NSData?, NSError?) -> Result<SerializedObject, ErrorObject> { get }ResponseSerialization.swift:58 public var serializeResponse: (NSURLRequest?, NSHTTPURLResponse?, NSData?, NSError?) -> Result<Value, Error>ResponseSerialization.swift:67 public init(serializeResponse: (NSURLRequest?, NSHTTPURLResponse?, NSData?, NSError?) -> Result<Value, Error>) {Result.swift:75 extension Result: CustomStringConvertible {Result.swift:90 extension Result: CustomDebugStringConvertible {, Error
Result.swift:34 case Success(Value)Result.swift:53 public var value: Value? {: ErrorType> { 0034 case Success
Result.swift:35 case Failure(Error)Result.swift:63 public var error: Error? {(Value) 0035 case Failure
ResponseSerialization.swift:160 if let response = response where response.statusCode == 204 { return .Success(NSData()) }ResponseSerialization.swift:168 return .Success(validData)ResponseSerialization.swift:204 if let response = response where response.statusCode == 204 { return .Success("") }ResponseSerialization.swift:223 return .Success(string)ResponseSerialization.swift:273 if let response = response where response.statusCode == 204 { return .Success(NSNull()) }ResponseSerialization.swift:283 return .Success(JSON)ResponseSerialization.swift:329 if let response = response where response.statusCode == 204 { return .Success(NSNull()) }ResponseSerialization.swift:339 return .Success(plist)Result.swift:40 case .Success:Result.swift:55 case .Success(let value):Result.swift:65 case .Success:Result.swift:80 case .Success:Result.swift:95 case .Success(let value):(Error) 0036 0037 /// Returns `true` if the result is a success, `false` otherwise. 0038 public var isSuccess
ResponseSerialization.swift:158 guard error == nil else { return .Failure(error!) }ResponseSerialization.swift:165 return .Failure(error)ResponseSerialization.swift:202 guard error == nil else { return .Failure(error!) }ResponseSerialization.swift:209 return .Failure(error)ResponseSerialization.swift:227 return .Failure(error)ResponseSerialization.swift:271 guard error == nil else { return .Failure(error!) }ResponseSerialization.swift:278 return .Failure(error)ResponseSerialization.swift:285 return .Failure(error as NSError)ResponseSerialization.swift:327 guard error == nil else { return .Failure(error!) }ResponseSerialization.swift:334 return .Failure(error)ResponseSerialization.swift:341 return .Failure(error as NSError)Result.swift:42 case .Failure:Result.swift:57 case .Failure:Result.swift:67 case .Failure(let error):Result.swift:82 case .Failure:Result.swift:97 case .Failure(let error):: Bool { 0039 switch self { 0040 case .Success: 0041 return true 0042 case .Failure: 0043 return false 0044 } 0045 } 0046 0047 /// Returns `true` if the result is a failure, `false` otherwise. 0048 public var isFailure: Bool { 0049 return !isSuccess 0050 } 0051 0052 /// Returns the associated value if the result is a success, `nil` otherwise. 0053 public var value: Value? { 0054 switch self { 0055 case .Success(let value): 0056 return value 0057 case .Failure: 0058 return nil 0059 } 0060 } 0061 0062 /// Returns the associated error value if the result is a failure, `nil` otherwise. 0063 public var error: Error? { 0064 switch self { 0065 case .Success: 0066 return nil 0067 case .Failure(let error): 0068 return error 0069 } 0070 } 0071 } 0072 0073 // MARK: - CustomStringConvertible 0074 0075 extension Result: CustomStringConvertible { 0076 /// The textual representation used when written to an output stream, which includes whether the result was a 0077 /// success or failure. 0078 public var description: String { 0079 switch self { 0080 case .Success: 0081 return "SUCCESS" 0082 case .Failure: 0083 return "FAILURE" 0084 } 0085 } 0086 } 0087 0088 // MARK: - CustomDebugStringConvertible 0089 0090 extension Result: CustomDebugStringConvertible { 0091 /// The debug textual representation used when written to an output stream, which includes whether the result was a 0092 /// success or failure in addition to the value or error. 0093 public var debugDescription
Result.swift:49 return !isSuccess: String { 0094 switch self { 0095 case .Success(let value): 0096 return "SUCCESS: \(value)" 0097 case .Failure(let error): 0098 return "FAILURE: \(error)" 0099 } 0100 } 0101 } 0102
Response.swift:75 return result.debugDescriptionResponse.swift:90 output.append("[Result]: \(result.debugDescription)")