ResultK provides Result
suitable to Swift's untyped throws
. ResultK's Result
type does not have the second type parameter to specify the error type unlike antitypical/Result.
let a: Result<Int> = Result { try primeOrThrow(2) }
switch a {
case let .success(value):
print(value)
case let .failure(error):
print(error)
}
Result
is a monad. map
and flatMap
are available for Result
.
let b: Result<Int> = Result(3)
let sum: Result<Int> = a.flatMap { a in b.map { b in a + b } } // Result(5)
Add the following to dependencies
in your Package.swift.
.package(
url: "https://github.com/koher/ResultK.git",
from: "0.2.0-alpha"
)
github "koher/ResultK" "master"