예제 #1
0
        public Pipe <TOut> Do <TProcessor, TOut>() where TProcessor : IFilter <T, TOut>
        {
            Pipe <TOut> result;

            if (Obj.Success)
            {
                var processor        = PipeFactory.GetProcessor <TProcessor>();
                var processingResult = processor.Process(Obj.Value);
                result = new Pipe <TOut>(PipeFactory).Use(processingResult);
            }
            else
            {
                result = new Pipe <TOut>(PipeFactory).Use(Result.Fail <TOut>(Obj.Error));
            }

            return(result);
        }