class Fiddle::CUnionEntity
A pointer to a C union
Public Class Methods
size(types)
click to toggle source
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
# File 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
Public Instance Methods
set_ctypes(types)
click to toggle source
Calculate the necessary offset and for each union member with the given types
# File 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