Class FFI::Struct
In: lib/ffi/struct.rb
Parent: Object

Methods

align   aligned   alignment   alignment   auto_ptr   by_ref   by_value   callback   clear   enclosing_module   find_field_type   find_type   in   layout   members   members   offset_of   offset_of   offsets   offsets   out   packed   ptr   size   size   size=   to_ptr   val   values  

Classes and Modules

Class FFI::Struct::ManagedStructConverter

External Aliases

packed -> pack
aligned -> align

Public Class methods

@return [StructLayout] @overload layout

 @return [StructLayout]
 Get struct layout.

@overload layout(*spec)

 @param [Array<Symbol, Integer>,Array(Hash)] spec
 @return [StructLayout]
 Create struct layout from +spec+.
 @example Creating a layout from an array +spec+
   class MyStruct < Struct
     layout :field1, :int,
            :field2, :pointer,
            :field3, :string
   end
 @example Creating a layout from an array +spec+ with offset
   class MyStructWithOffset < Struct
     layout :field1, :int,
            :field2, :pointer, 6,  # set offset to 6 for this field
            :field3, :string
   end
 @example Creating a layout from a hash +spec+ (Ruby 1.9 only)
   class MyStructFromHash < Struct
     layout :field1 => :int,
            :field2 => :pointer,
            :field3 => :string
   end
 @example Creating a layout with pointers to functions
   class MyFunctionTable < Struct
     layout :function1, callback([:int, :int], :int),
            :function2, callback([:pointer], :void),
            :field3, :string
   end
 @note Creating a layout from a hash +spec+ is supported only for Ruby 1.9.

(see FFI::Type#members)

Get struct size @return [Numeric]

set struct size @param [Numeric] size @return [size]

Protected Class methods

Public Instance methods

align()

Alias for alignment

@return [Fixnum] Struct alignment

Clear the struct content. @return [self]

(see FFI::StructLayout#members)

Get struct size @return [Numeric]

Get {Pointer} to struct content. @return [AbstractMemory]

@return [Array] Get array of values from Struct fields.

[Validate]