src/Sirh3e.Rust/Result/Methods/Result.Flatten.Extension.cs
namespace Sirh3e.Rust.Result;
public static partial class ResultExtension
{
/// <summary>
/// Converts from Result<Result<TOk, TErr>, TErr> to Result<TOk, TErr>
/// </summary>
/// <param name="result"></param>
/// <typeparam name="TOk"></typeparam>
/// <typeparam name="TErr"></typeparam>
/// <returns></returns>
public static Result<TOk, TErr> Flatten<TOk, TErr>(this Result<Result<TOk, TErr>, TErr> result)
=> result.Match(
ok => ok,
Result<TOk, TErr>.Err);
/// <summary>
/// Converts from Result<Result<TOk, TErr>, TErr> to Result<TOk, TErr>
/// </summary>
/// <param name="result"></param>
/// <typeparam name="TOk"></typeparam>
/// <typeparam name="TErr"></typeparam>
/// <returns></returns>
public static Result<TOk, TErr> Flatten<TOk, TErr>(this Result<TOk, TErr> result)
=> result;
}