Class: FFI::StructLayout::InnerStruct

Inherits:
Field
  • Object
show all
Defined in:
lib/ffi/struct_layout.rb

Instance Method Summary collapse

Methods inherited from Field

#alignment, #initialize, #name, #offset, #size, #type

Constructor Details

This class inherits a constructor from FFI::StructLayout::Field

Instance Method Details

#get(ptr) ⇒ Object



71
72
73
# File 'lib/ffi/struct_layout.rb', line 71

def get(ptr)
  type.struct_class.new(ptr.slice(self.offset, self.size))
end

#put(ptr, value) ⇒ Object

Raises:

  • (TypeError)


75
76
77
78
# File 'lib/ffi/struct_layout.rb', line 75

def put(ptr, value)
  raise TypeError, "wrong value type (expected #{type.struct_class})" unless value.is_a?(type.struct_class)
  ptr.slice(self.offset, self.size).__copy_from__(value.pointer, self.size)
end