class IDL::Type::Enum

def in_range?(val)

def in_range?(val)
  val >= self.min && val <= self.max
end

def max

def max
  @node.enumerators.length - 1
end

def min

def min
  0
end

def narrow(obj)

def narrow(obj)
  typeerror(obj) unless ::Integer === obj
  typeerror(obj) unless (0...@node.enumerators.length) === obj
  obj
end

def next(val)

def next(val)
  val < self.max ? val + 1 : self.min
end

def range_length

def range_length
  @node.enumerators.length
end