Class: FFI::Enum
- Inherits:
-
Object
- Object
- FFI::Enum
- Defined in:
- lib/evoasm/ffi_ext.rb
Instance Method Summary collapse
Instance Method Details
#flags(flags, shift: false) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/evoasm/ffi_ext.rb', line 6 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 |
#keys(values) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/evoasm/ffi_ext.rb', line 23 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 |
#values(keys) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/evoasm/ffi_ext.rb', line 15 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 |