Open3

Ruby の FFI について

matsukiyomatsukiyo

構造体の受け渡し

FFI::Struct を継承した型を作る

class Test < FFI::Struct
  layout :dummy_int, :int32
end
matsukiyomatsukiyo

構造体の配列

配列をBoxで持つか、 Structに固定長で持つか、で実装が変わりそう

// 以下のような配列のitemを想定
#[repr(C)]
pub struct TestItem {
  x: u32,
}
// Boxで持つ場合

#[repr(C)]
pub struct Test {
  pub items: *const [*const TestItem],
}
// 直接持つ場合

#[repr(C)]
pub struct Test {
  pub items: [*const TestItem; 10],
}