コード例 #1
0
        public async Task Return_LiftsConstantAndSideEffectFreeValueIntoAPipeline()
        {
            var pipeline = CreatePipeline.Return(5);
            var task     = pipeline.Flatten();

            Assert.Equal(5, await task);
        }
コード例 #2
0
 public static Pipeline <Result <TSuccess, TFailure> > FlipMerge <TSuccess, TFailure>(
     this Pipeline <Result <Pipeline <TSuccess>, TFailure> > pipeLine)
 => pipeLine
 .SelectMany(result =>
             result.EitherFold(
                 r => r.Success.Select(Result <TSuccess, TFailure> .Succeeded),
                 error => CreatePipeline.Return(Result <TSuccess, TFailure> .Failed(error.Failure))));
コード例 #3
0
 public static Pipeline <Result <TSuccess, TFailure> > ToPipeline <TSuccess, TFailure>(
     this Result <TSuccess, TFailure> result)
 => result.IsSuccess
     ? CreatePipeline.Return(Result <TSuccess, TFailure> .Succeeded(result.Success))
     : CreatePipeline.Return(Result <TSuccess, TFailure> .Failed(result.Failure));
コード例 #4
0
 public static Pipeline <Result <TSuccess, TFailure> > FlipMerge <TSuccess, TFailure>(
     this Result <Pipeline <Result <TSuccess, TFailure> >, TFailure> result)
 => result.EitherFold(r => r.Success, e => CreatePipeline.Return(Result <TSuccess, TFailure> .Failed(e.Failure)));