class FFI::Struct

Public Class Methods

struct_layout(*args) click to toggle source

@example HtsFormat

class HtsFormat < FFI::Struct
  layout \
    :category,          HtsFormatCategory,
    :format,            HtsExactFormat,
    :version,
    struct_layout(
      :major,           :short,
      :minor,           :short
    ),
    :compression,       HtsCompression,
    :compression_level, :short,
    :specific,          :pointer
end
# File lib/hts/libhts.rb, line 56
def struct_layout(*args)
  Class.new(FFI::Struct) { layout(*args) }
end
union_layout(*args) click to toggle source

@example HtsOpt

class HtsOpt < FFI::Struct
  layout \
    :arg,            :string,
    :opt,            HtsFmtOption,
    :val,
    union_layout(
      :i,            :int,
      :s,            :string
    ),
    :next,           HtsOpt.ptr
end
# File lib/hts/libhts.rb, line 37
def union_layout(*args)
  Class.new(FFI::Union) { layout(*args) }
end