Sha256: 7aa4e20cf45f0c4ff68ea8220c7c80b515453a3dc6a27193b10d35193fc53942

Contents?: true

Size: 692 Bytes

Versions: 4

Compression:

Stored size: 692 Bytes

Contents

module H3
  module Bindings
    # Base for FFI Bindings.
    #
    # When extended, this module sets up FFI to use the H3 C library.
    module Base
      def self.extended(base)
        lib_path = File.expand_path(__dir__ + "/../../../ext/h3/src/lib")
        base.extend FFI::Library
        base.include Structs
        base.include Types
        base.ffi_lib ["#{lib_path}/libh3.dylib", "#{lib_path}/libh3.so"]
        base.typedef :ulong_long, :h3_index
        base.typedef :int, :size
        base.typedef :int, :k_distance
        base.typedef :pointer, :h3_set
        base.typedef :pointer, :output_buffer
        base.const_set("H3_INDEX", :ulong_long)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
h3-3.5.0 lib/h3/bindings/base.rb
h3-3.4.4 lib/h3/bindings/base.rb
h3-3.4.0 lib/h3/bindings/base.rb
h3-3.3.1 lib/h3/bindings/base.rb