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