ResTBitwiseOr(ResT, FuncT, ResT) Operator

Limited ahd experimental for now; waiting for generics in operator overloading to be actually useful.

Returns None when IsNone; map(val) when IsOk flattening the result. Shorthand combining Map and Flatten calls.
C#
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

Definition

Namespace: Orx.Fun.Result
Assembly: Orx.Fun.Result (in Orx.Fun.Result.dll) Version: 1.3.0+344c8bdd6f720ccfb2d8db7c61b76cf02be18f5f
C#
public static Res<T> operator |(
	Res<T> result,
	Func<T, Res<T>> map
)

Parameters

result  ResT
Result to flat-map.
map  FuncT, ResT
Function to flat-map the result if it is of Ok variant.

Return Value

ResT

See Also