namespace Rehlert.RoP.Extensions; public static class OnErrorExtensions { public static Result OnError(this Result value, Action action) { value.Match( _ => { }, err => action(err.Value) ); return value; } public static async Task> OnError( this Result value, Func func ) { await value.Match( _ => Task.CompletedTask, err => func(err.Value) ); return value; } public static async Task> OnError( this Task> value, Func func ) { var valRes = await value; await valRes.Match( _ => Task.CompletedTask, err => func(err.Value) ); return valRes; } public static async Task> OnError( this Task> value, Action action ) { var valRes = await value; valRes.Match( _ => { }, err => action(err.Value) ); return valRes; } }