using System; namespace Sprache { internal static class ResultHelper { public static IResult IfSuccess(this IResult result, Func, IResult> next) { if(result == null) throw new ArgumentNullException(nameof(result)); if (result.WasSuccessful) return next(result); return Result.Failure(result.Remainder, result.Message, result.Expectations); } public static IResult IfFailure(this IResult result, Func, IResult> next) { if (result == null) throw new ArgumentNullException(nameof(result)); return result.WasSuccessful ? result : next(result); } } }