using SharedKernel.Results; namespace Web.Api.Extensions; public static class ResultExtensions { // Result 객체에 값이 없는 경우, onSuccess는 매개변수 없이 호출되고, onFailure는 Result 객체를 매개변수로 받아 호출됩니다. public static TOut Match( this Result result, Func onSuccess, Func onFailure ) { return result.IsSuccess ? onSuccess() : onFailure(result); } // Result 객체에 값이 있는 경우, onSuccess는 매개변수로 TIn 값을 받아 호출되고, onFailure는 Result 객체를 매개변수로 받아 호출됩니다. public static TOut Match( this Result result, Func onSuccess, Func, TOut> onFailure ) { return result.IsSuccess ? onSuccess(result.Value) : onFailure(result); } }