moves extensions

This commit is contained in:
Robin Ehlert
2025-07-26 16:27:52 +02:00
parent 94ad6e57d7
commit 84be8314bf
3 changed files with 3 additions and 3 deletions

View File

@@ -0,0 +1,55 @@
namespace Rehlert.RoP;
public static class OnErrorExtensions
{
public static Result<TIn, TErr> OnError<TIn, TErr>(this Result<TIn, TErr> value, Action<TErr> action)
{
value.Match(
_ => { },
err => action(err.Value)
);
return value;
}
public static async Task<Result<TIn, TErr>> OnError<TIn, TErr>(
this Result<TIn, TErr> value,
Func<TErr, Task> func
)
{
await value.Match(
_ => Task.CompletedTask,
err => func(err.Value)
);
return value;
}
public static async Task<Result<TIn, TErr>> OnError<TIn, TErr>(
this Task<Result<TIn, TErr>> value,
Func<TErr, Task> func
)
{
var valRes = await value;
await valRes.Match(
_ => Task.CompletedTask,
err => func(err.Value)
);
return valRes;
}
public static async Task<Result<TIn, TErr>> OnError<TIn, TErr>(
this Task<Result<TIn, TErr>> value,
Action<TErr> action
)
{
var valRes = await value;
valRes.Match(
_ => { },
err => action(err.Value)
);
return valRes;
}
}