mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-14 17:23:25 +01:00
XCode project for app, moved app project to folder
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// Result+Conveniences.swift
|
||||
// AltStore
|
||||
//
|
||||
// Created by Riley Testut on 5/22/19.
|
||||
// Copyright © 2019 Riley Testut. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
public extension Result {
|
||||
var value: Success? {
|
||||
switch self {
|
||||
case let .success(value): return value
|
||||
case .failure: return nil
|
||||
}
|
||||
}
|
||||
|
||||
var error: Failure? {
|
||||
switch self {
|
||||
case .success: return nil
|
||||
case let .failure(error): return error
|
||||
}
|
||||
}
|
||||
|
||||
init(_ value: Success?, _ error: Failure?) {
|
||||
switch (value, error) {
|
||||
case let (value?, _): self = .success(value)
|
||||
case let (_, error?): self = .failure(error)
|
||||
case (nil, nil): preconditionFailure("Either value or error must be non-nil")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public extension Result where Success == Void {
|
||||
init(_ success: Bool, _ error: Failure?) {
|
||||
if success {
|
||||
self = .success(())
|
||||
} else if let error = error {
|
||||
self = .failure(error)
|
||||
} else {
|
||||
preconditionFailure("Error must be non-nil if success is false")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public extension Result {
|
||||
init<T, U>(_ values: (T?, U?), _ error: Failure?) where Success == (T, U) {
|
||||
if let value1 = values.0, let value2 = values.1 {
|
||||
self = .success((value1, value2))
|
||||
} else if let error = error {
|
||||
self = .failure(error)
|
||||
} else {
|
||||
preconditionFailure("Error must be non-nil if either provided values are nil")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user