class Dry::Logic::Result
def ast(input = Undefined)
def ast(input = Undefined) serializer.(input) end
def failure?
def failure? !success? end
def initialize(success, id = nil, &block)
def initialize(success, id = nil, &block) @success = success @id = id @serializer = block end
def success?
def success? success end
def to_ast
def to_ast if id [type, [id, ast]] else ast end end
def to_s
def to_s visit(to_ast) end
def type
def type success? ? :success : :failure end
def visit(ast)
def visit(ast) __send__(:"visit_#{ast[0]}", ast[1]) end
def visit_and(node)
def visit_and(node) left, right = node "#{visit(left)} AND #{visit(right)}" end
def visit_hint(node)
def visit_hint(node) visit(node) end
def visit_not(node)
def visit_not(node) "not(#{visit(node)})" end
def visit_or(node)
def visit_or(node) left, right = node "#{visit(left)} OR #{visit(right)}" end
def visit_predicate(node)
def visit_predicate(node) name, args = node if args.empty? name.to_s else "#{name}(#{args.map(&:last).map(&:inspect).join(", ")})" end end
def visit_xor(node)
def visit_xor(node) left, right = node "#{visit(left)} XOR #{visit(right)}" end