ResultExtensionsFlattenT(ResResT) Method

Flattens the result of result of T; i.e., Res<Res<T>> -> Res<T>, by mapping:
  • Err => Err,
  • Ok(Err) => Err,
  • Ok(Ok(value)) => Ok(value).
C#
Res<Res<int>> nestedResult = Err<Res<int>>("msg");
Res<int> result = nestedResult.Flatten();
Assert(result.IsErr and result.ErrorMessage() == Some("msg"));

Res<Res<int>> nestedResult = Ok(Err<int>("msg"));
Res<int> result = nestedResult.Flatten();
Assert(result.IsErr and result.ErrorMessage() == Some("msg"));

Res<Res<int>> nestedResult = Ok(Ok(42));
Res<int> result = nestedResult.Flatten();
Assert(result.IsOk and result.Unwrap() == 42);

Definition

Namespace: Orx.Fun.Result
Assembly: Orx.Fun.Result (in Orx.Fun.Result.dll) Version: 1.3.0+344c8bdd6f720ccfb2d8db7c61b76cf02be18f5f
C#
public static Res<T> Flatten<T>(
	this Res<Res<T>> result
)

Parameters

result  ResResT

[Missing <param name="result"/> documentation for "M:Orx.Fun.Result.ResultExtensions.Flatten``1(Orx.Fun.Result.Res{Orx.Fun.Result.Res{``0}})"]

Type Parameters

T

[Missing <typeparam name="T"/> documentation for "M:Orx.Fun.Result.ResultExtensions.Flatten``1(Orx.Fun.Result.Res{Orx.Fun.Result.Res{``0}})"]

Return Value

ResT

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type ResResT. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

See Also