Files
7d2dXG/Mods/0A-KFCommonUtilityLib/Scripts/Utilities/ExpressionParser/Sprache/ResultHelper.cs
Nathaniel Cosford 062dfab2cd Patched
2025-05-30 01:04:40 +09:30

26 lines
775 B
C#

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