module Dry
  module Logic
    class Rule::Result < Rule
      def call(input)
        result = input[name]
        return result unless result.success?
        result_input = result.input
        Result::Wrapped.new(input, predicate.(result_input), self)
      end

      def type
        :res
      end
    end
  end
end