RxSwift/RxTests/RxSwiftTests/TestImplementations/Subscription.swift

47 lines
1.0 KiB
Swift

//
// Subscription.swift
// Rx
//
// Created by Krunoslav Zaher on 2/14/15.
// Copyright (c) 2015 Krunoslav Zaher. All rights reserved.
//
import Foundation
struct Subscription
: Equatable
, Hashable
, CustomDebugStringConvertible {
let subscribe : Time
let unsubscribe : Time
init(_ subscribe: Time) {
self.subscribe = subscribe
self.unsubscribe = Int.max
}
init(_ subscribe: Time, _ unsubscribe: Time) {
self.subscribe = subscribe
self.unsubscribe = unsubscribe
}
var hashValue : Int {
get {
return subscribe.hashValue ^ unsubscribe.hashValue
}
}
}
extension Subscription {
var debugDescription : String {
get {
let infiniteText = "Infinity"
return "(\(subscribe) : \(unsubscribe != Time.max ? String(unsubscribe) : infiniteText))"
}
}
}
func == (lhs: Subscription, rhs: Subscription) -> Bool {
return lhs.subscribe == rhs.subscribe && lhs.unsubscribe == rhs.unsubscribe
}