class SearchViewModel<T> {
// inputs
private let searchSubject = PublishSubject<String>()
var searchObserver: AnyObserver<String> {
return searchSubject.asObserver()
}
// outputs
private let loadingSubject = PublishSubject<Bool>()
var isLoading: Driver<Bool> {
return loadingSubject
.asDriver(onErrorJustReturn: false)
}
private let errorSubject = PublishSubject<SearchError?>()
var error: Driver<SearchError?> {
return errorSubject
.asDriver(onErrorJustReturn: SearchError.unkowned)
}
private let contentSubject = PublishSubject<[T]>()
var content: Driver<[T]> {
return contentSubject
.asDriver(onErrorJustReturn: [])
}
}
Created
December 16, 2018 15:03
-
-
Save andrespch/671edea548e32780bcbb7a598671aeab to your computer and use it in GitHub Desktop.
view model inputs and outputs
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment