Viewstate
A generic enumeration that wraps the state types in a simple enum case
public enum ViewState<F: ViewSuccess, E: ViewErrable, L: ViewLoadable, O: ViewEmptiable>: ViewStateProtocol {
case success(F)
case error(E)
case loading(L)
case empty(O)
public var success: F? {
guard case ViewState.success(let state) = self else { return nil }
return state
}
public var error: E? {
guard case ViewState.error(let state) = self else { return nil }
return state
}
public var loading: L? {
guard case ViewState.loading(let state) = self else { return nil }
return state
}
public var empty: O? {
guard case ViewState.empty(let state) = self else { return nil }
return state
}
}