def structure(name_or_number)
      raise ArgumentError, "Invalid argument 'name_or_number'. Expected String or Integer, got #{name_or_number.class}." unless [String, Integer, Fixnum].include?(name_or_number.class)
      if name_or_number.is_a?(String)
        @structures.each do |s|
          return s if s.name == name_or_number
        end
      else
        @structures.each do |s|
          return s if s.number == name_or_number
        end
      end
      return nil
    end
def structure(name_or_number)
      raise ArgumentError, "Invalid argument 'name_or_number'. Expected String or Integer, got #{name_or_number.class}." unless [String, Integer, Fixnum].include?(name_or_number.class)
      if name_or_number.is_a?(String)
        @structures.each do |s|
          return s if s.name == name_or_number
        end
      else
        @structures.each do |s|
          return s if s.number == name_or_number
        end
      end
      return nil
    end
Gives a ROI/POI that matches the specified number or name.

 @param [String, Integer] name_or_number a ROI/POI's name or number attribute
 @return [ROI, POI, NilClass] the matching structure (or nil if no structure is matched)