You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

58 lines
1.0 KiB

//
// PromiseState.swift
// then
//
// Created by Sacha Durand Saint Omer on 08/08/16.
// Copyright © 2016 s4cha. All rights reserved.
//
import Foundation
public enum PromiseState<T> {
case dormant
case pending(progress: Float)
case fulfilled(value: T)
case rejected(error: Error)
}
extension PromiseState {
var value: T? {
if case let .fulfilled(value) = self {
return value
}
return nil
}
var error: Error? {
if case let .rejected(error) = self {
return error
}
return nil
}
var isDormant: Bool {
if case .dormant = self {
return true
}
return false
}
var isPendingOrDormant: Bool {
return !isFulfilled && !isRejected
}
var isFulfilled: Bool {
if case .fulfilled = self {
return true
}
return false
}
var isRejected: Bool {
if case .rejected = self {
return true
}
return false
}
}