Module: FFI::Library
- Defined in:
- lib/ffi/bitmask.rb
Instance Method Summary collapse
-
#bitmask(*args) ⇒ FFI::Bitmask
Create a new FFI::Bitmask.
Instance Method Details
#bitmask(name, values) ⇒ FFI::Bitmask #bitmask(*args) ⇒ FFI::Bitmask #bitmask(values) ⇒ FFI::Bitmask #bitmask(native_type, name, values) ⇒ FFI::Bitmask #bitmask(native_type, *args) ⇒ FFI::Bitmask #bitmask(native_type, values) ⇒ FFI::Bitmask
Create a new FFI::Bitmask
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/ffi/bitmask.rb', line 46 def bitmask(*args) native_type = args.first.kind_of?(FFI::Type) ? args.shift : nil name, values = if args[0].kind_of?(Symbol) && args[1].kind_of?(Array) [ args[0], args[1] ] elsif args[0].kind_of?(Array) [ nil, args[0] ] else [ nil, args ] end @ffi_enums = FFI::Enums.new unless defined?(@ffi_enums) @ffi_enums << (e = native_type ? FFI::Bitmask.new(native_type, values, name) : FFI::Bitmask.new(values, name)) typedef(e, name) if name e end |