Advertisement
Guest User

Untitled

a guest
May 24th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. //: Playground - noun: a place where people can play
  2.  
  3. import UIKit
  4.  
  5. enum Response<T> {
  6. case success(value: T)
  7. case error(error: Error)
  8. }
  9.  
  10. //very verbose equality
  11. extension Response: Equatable {
  12.  
  13. static func == (lhs: Response, rhs: Response) -> Bool {
  14. switch (lhs, rhs) {
  15. case (.success, .success):
  16. return true
  17. case (.error, .error):
  18. return true
  19. default:
  20. return false
  21. }
  22. }
  23. }
  24.  
  25. //weird?
  26. extension Response {
  27. var isSuccess: Bool {
  28. if case .success = response {
  29. return true
  30. } else {
  31. return false
  32. }
  33. }
  34.  
  35. var isError: Bool {
  36. if case .error = response {
  37. return true
  38. } else {
  39. return false
  40. }
  41. }
  42.  
  43. var value: T? {
  44. switch self {
  45. case .success(let value):
  46. return value
  47. default:
  48. return nil
  49. }
  50. }
  51. }
  52.  
  53. let response: Response<String> = Response.success(value: "Oie")
  54.  
  55. //my goal
  56. //if response == .success {
  57. //
  58. //}
  59.  
  60. //too verbose
  61. if response == Response<String>.success(value: "") {
  62. print("success")
  63. }
  64.  
  65. if response.isSuccess {
  66. print(response.value)
  67. }
  68.  
  69. if case let .success(value) = response {
  70. print(value)
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement