lib/solid/result/contract/error.rb
# frozen_string_literal: true
class Solid::Result::Contract::Error < Solid::Result::Error
class UnexpectedType < self
def self.build(type:, allowed_types:)
new("type :#{type} is not allowed. Allowed types: #{allowed_types.map(&:inspect).join(', ')}")
end
end
class UnexpectedValue < self
def self.build(type:, value:, cause: nil)
cause_message = " (#{cause.message})" if cause
new("value #{value.inspect} is not allowed for :#{type} type#{cause_message}")
end
end
end