class Dry::Logic::Result

def self.[](type)

def self.[](type)
  case type
  when Rule::Each then Result::Each
  when Rule::Set then Result::Set
  when Rule::Key, Rule::Attr, Rule::Check then Result::Named
  else Result::Value
  end
end

def [](name)

def [](name)
  response[name] if response.respond_to?(:[])
end

def failure?

def failure?
  !success?
end

def initialize(response, rule, input)

def initialize(response, rule, input)
  @response = response
  @success = response.respond_to?(:success?) ? response.success? : response
  @rule = rule
  @input = input
end

def name

def name
  nil
end

def negated

def negated
  self.class.new(!success, rule, input)
end

def success?

def success?
  @success
end