Files
ShadowsocksX-NG/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift

36 lines
742 B
Swift
Raw Normal View History

2017-03-17 23:08:52 +08:00
//
// ScheduledItem.swift
// RxSwift
//
// Created by Krunoslav Zaher on 9/2/15.
// Copyright © 2015 Krunoslav Zaher. All rights reserved.
//
struct ScheduledItem<T>
: ScheduledItemType
, InvocableType {
typealias Action = (T) -> Disposable
private let _action: Action
private let _state: T
private let _disposable = SingleAssignmentDisposable()
var isDisposed: Bool {
2019-09-10 14:30:51 +08:00
return self._disposable.isDisposed
2017-03-17 23:08:52 +08:00
}
init(action: @escaping Action, state: T) {
2019-09-10 14:30:51 +08:00
self._action = action
self._state = state
2017-03-17 23:08:52 +08:00
}
func invoke() {
2019-09-10 14:30:51 +08:00
self._disposable.setDisposable(self._action(self._state))
2017-03-17 23:08:52 +08:00
}
func dispose() {
2019-09-10 14:30:51 +08:00
self._disposable.dispose()
2017-03-17 23:08:52 +08:00
}
}