Swift の Result をいじっていて、書いてしまった拡張関数
現在の値を消費して終わりの関数
extension Result {
func doOn(success: (Success) -> Void, failure: (Failure) -> Void) {
switch self {
case .success(let value): success(value)
case .failure(let error): failure(error)
}
}
}
現在の値が .success
の場合にデバッグプリントするための関数
extension Result {
func peek(_ action: (Success) -> Void) -> Result<Success, Failure> {
let doNothing: () -> Void = {}
switch self {
case .success(let value): action(value)
case .failure(_): doNothing()
}
return self
}
}
現在の値が .failure
の場合にデバッグプリントするための関数
extension Result {
func peekError(_ action: (Failure) -> Void) -> Result<Success, Failure> {
let doNothing: () -> Void = {}
switch self {
case .success(_): doNothing()
case .failure(let error): action(error)
}
return self
}
}