Support for the Ruby 2.4 series has ended. See here for reference.
A C union wrapper
Allocates a C union the types provided.
When the instance is garbage collected, the C function func is called.
# File fiddle/lib/fiddle/struct.rb, line 217
def CUnionEntity.malloc(types, func=nil)
addr = Fiddle.malloc(CUnionEntity.size(types))
CUnionEntity.new(addr, types, func)
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
# File fiddle/lib/fiddle/struct.rb, line 229
def CUnionEntity.size(types)
types.map { |type, count = 1|
PackInfo::SIZE_MAP[type] * count
}.max
end