static Res<User> TryGetUser() {
// method that tries to get the user, return Ok(user) or Err.
}
static Res< double> TryGetBalance(User user) {
// method that tries to get usedr's balance; which might fail, returns:
// Ok(balance) or Err
}
Res<double> balance = TryGetUser().FlatMap(TryGetBalance);
// equivalent to both below:
var balance = TryGetUser().FlatMap(user => TryGetBalance(user));
var balance = TryGetUser() // Res<User>
.Map(user => TryGetBalance(user)) // Res<Res>
.Flatten(); // Res
public Task<Res<TOut>> FlatMapAsync<TOut>(
Func<T, Task<Res<TOut>>> map
)
[Missing <typeparam name="TOut"/> documentation for "M:Orx.Fun.Result.Res`1.FlatMapAsync``1(System.Func{`0,System.Threading.Tasks.Task{Orx.Fun.Result.Res{``0}}})"]