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 } }