This program defines a buildBlock function to combine multiple Result values. It prints whether the combined results are success or failure.
import Foundation
enum MyError: Error {
case example
}
func buildBlock(_ components: Result<Void, Error>...) -> Result<Void, Error> {
for component in components {
if case .failure(let error) = component {
return .failure(error)
}
}
return .success(())
}
let successResult: Result<Void, Error> = .success(())
let failureResult: Result<Void, Error> = .failure(MyError.example)
let combined1 = buildBlock(successResult, successResult)
let combined2 = buildBlock(successResult, failureResult)
switch combined1 {
case .success:
print("combined1: Success")
case .failure:
print("combined1: Failure")
}
switch combined2 {
case .success:
print("combined2: Success")
case .failure:
print("combined2: Failure")
}