Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //: Playground - noun: a place where people can play
- import UIKit
- enum Response<T> {
- case success(value: T)
- case error(error: Error)
- }
- //very verbose equality
- extension Response: Equatable {
- static func == (lhs: Response, rhs: Response) -> Bool {
- switch (lhs, rhs) {
- case (.success, .success):
- return true
- case (.error, .error):
- return true
- default:
- return false
- }
- }
- }
- //weird?
- extension Response {
- var isSuccess: Bool {
- if case .success = response {
- return true
- } else {
- return false
- }
- }
- var isError: Bool {
- if case .error = response {
- return true
- } else {
- return false
- }
- }
- var value: T? {
- switch self {
- case .success(let value):
- return value
- default:
- return nil
- }
- }
- }
- let response: Response<String> = Response.success(value: "Oie")
- //my goal
- //if response == .success {
- //
- //}
- //too verbose
- if response == Response<String>.success(value: "") {
- print("success")
- }
- if response.isSuccess {
- print(response.value)
- }
- if case let .success(value) = response {
- print(value)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement