class Plumb::Result

def initialize(value, errors: nil)

def initialize(value, errors: nil)
  @value = value
  @errors = errors
end

def inspect

def inspect
  %(<#{self.class}##{object_id} value:#{value.inspect} errors:#{errors.inspect}>)
end

def invalid(value = nil, errors: nil)

def invalid(value = nil, errors: nil)
  Invalid.new(value, errors:)
end

def invalid(val = value, errors: nil)

def invalid(val = value, errors: nil)
  Result.invalid(val, errors:)
end

def invalid? = false

def invalid? = false

def reset(val)

def reset(val)
  @value = val
  @errors = nil
  self
end

def valid(value)

def valid(value)
  Valid.new(value)
end

def valid(val = value)

def valid(val = value)
  Result.valid(val)
end

def valid? = true

def valid? = true

def wrap(value)

def wrap(value)
  return value if value.is_a?(Result)
  valid(value)
end