Sha256: cb4629131af160282b124c2c48833f1775ef0f56a60e8cefbff36353e352022e

Contents?: true

Size: 535 Bytes

Versions: 14

Compression:

Stored size: 535 Bytes

Contents

# frozen_string_literal: true

require "gir_ffi/enum_like_base"

module GirFFI
  # Base module for flags.
  module FlagsBase
    include EnumLikeBase

    def native_type
      self::BitMask.native_type
    end

    def to_native(value, context)
      case value
      when Symbol
        value = { value => true }
      end
      self::BitMask.to_native(value, context)
    end

    def from_native(*args)
      self::BitMask.from_native(*args).select { |_k, v| v }
    end

    def [](arg)
      self::BitMask[arg]
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
gir_ffi-0.18.0 lib/gir_ffi/flags_base.rb
gir_ffi-0.17.0 lib/gir_ffi/flags_base.rb
gir_ffi-0.16.1 lib/gir_ffi/flags_base.rb
gir_ffi-0.16.0 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.9 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.8 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.7 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.6 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.5 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.4 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.3 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.2 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.1 lib/gir_ffi/flags_base.rb
gir_ffi-0.15.0 lib/gir_ffi/flags_base.rb