Sha256: 8d3a471cf9dd5743a391ef206290d13ba0c45176d7f80ce8311da23717dd2ee1
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
require 'ffi' # @!visibility private module FFI class Enum def flags(flags, shift: false) flags.inject(0) do |acc, flag| flag_value = self[flag] raise ArgumentError, "unknown flag '#{flag}'" if flag_value.nil? flag_value = 1 << flag_value if shift acc | flag_value end end def values(keys) keys.map do |key| enum_value = self[key] raise ArgumentError, "unknown enum key '#{key}'" if enum_value.nil? enum_value end end def keys(values) values.map do |value| enum_key = self[value] raise ArgumentError, "unknown enum value '#{value}'" if enum_key.nil? enum_key end end end class AbstractMemory def read_size_t case FFI.find_type :size_t when FFI::Type::Builtin::ULONG_LONG read_ulong_long when FFI::Type::Builtin::ULONG read_ulong when FFI::Type::Builtin::UINT read_uint else raise end end end class Pointer def to_ptr self end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
evoasm-0.1.0.pre2 | lib/evoasm/ffi_ext.rb |