Avatar
@swift-5.2.5 final class Future<Output, Failure: Error> { var result: Result<Output, Failure>? } extension Future { func get(_ body: @escaping (Result<Output, Failure>) -> Void) { guard let result = self.result else { return } body(result) } } extension Future where Failure == Never { func get(_ body: @escaping (Output) -> Void) { guard let result = self.result else { return } body(try! result.get()) } } let future = Future<Int, Never>() future.result = .success(42) future.get { value in print(value) }