A pointer to a C union
      Class Methods
    
  
          
            3.1
          
          
            View on GitHub
            
          
        
        
          
            # File tmp/rubies/ruby-3.1.3/ext/fiddle/lib/fiddle/struct.rb, line 521
def CUnionEntity.size(types)
  types.map { |type, count = 1|
    if type.respond_to?(:entity_class)
      type.size * count
    else
      PackInfo::SIZE_MAP[type] * count
    end
  }.max
end
          
        
      Returns the size needed for the union with the given types.
Fiddle::CUnionEntity.size( [ Fiddle::TYPE_DOUBLE, Fiddle::TYPE_INT, Fiddle::TYPE_CHAR, Fiddle::TYPE_VOIDP ]) #=> 8
      Instance Methods
    
  
          
            3.1
          
          
            View on GitHub
            
          
        
        
          
            # File tmp/rubies/ruby-3.1.3/ext/fiddle/lib/fiddle/struct.rb, line 533
def set_ctypes(types)
  @ctypes = types
  @offset = Array.new(types.length, 0)
  @size   = self.class.size types
end
          
        
      Calculate the necessary offset and for each union member with the given types