class T::Types::Enum

validates that the provided value is within a given set/enum

def build_type

def build_type
  nil
end

def describe_obj(obj)

overrides Base
def describe_obj(obj)
  obj.inspect
end

def initialize(values)

def initialize(values)
  case values
  when Hash
    @values = values
  else
    require "set" unless defined?(Set)
    @values = values.to_set
  end
end

def name

overrides Base
def name
  @name ||= "T.deprecated_enum([#{@values.map(&:inspect).sort.join(', ')}])"
end

def subtype_of_single?(other)

overrides Base
def subtype_of_single?(other)
ther
num
lues - other.values).empty?
e

def valid?(obj)

overrides Base
def valid?(obj)
  @values.member?(obj)
end