Method: FFI::Library#enum

Defined in:
lib/ffi/library.rb

#enum(name, values) ⇒ FFI::Enum #enum(*args) ⇒ FFI::Enum #enum(values) ⇒ FFI::Enum #enum(native_type, name, values) ⇒ FFI::Enum #enum(native_type, *args) ⇒ FFI::Enum #enum(native_type, values) ⇒ FFI::Enum

Create a new Enum.

Overloads:

  • #enum(name, values) ⇒ FFI::Enum

    Create a named enum.

    Examples:

    enum :foo, [:zero, :one, :two]  # named enum
    

    Parameters:

    • name (Symbol)

      name for new enum

    • values (Array)

      values for enum

  • #enum(*args) ⇒ FFI::Enum

    Create an unnamed enum.

    Examples:

    enum :zero, :one, :two  # unnamed enum
    

    Parameters:

    • args

      values for enum

  • #enum(values) ⇒ FFI::Enum

    Create an unnamed enum.

    Examples:

    enum [:zero, :one, :two]  # unnamed enum, equivalent to above example
    

    Parameters:

    • values (Array)

      values for enum

  • #enum(native_type, name, values) ⇒ FFI::Enum

    Create a named enum and specify the native type.

    Examples:

    enum FFI::Type::UINT64, :foo, [:zero, :one, :two]  # named enum
    

    Parameters:

    • native_type (FFI::Type)

      native type for new enum

    • name (Symbol)

      name for new enum

    • values (Array)

      values for enum

  • #enum(native_type, *args) ⇒ FFI::Enum

    Create an unnamed enum and specify the native type.

    Examples:

    enum FFI::Type::UINT64, :zero, :one, :two  # unnamed enum
    

    Parameters:

    • native_type (FFI::Type)

      native type for new enum

    • args

      values for enum

  • #enum(native_type, values) ⇒ FFI::Enum

    Create an unnamed enum and specify the native type.

    Examples:

    enum Type::UINT64, [:zero, :one, :two]  # unnamed enum, equivalent to above example
    

    Parameters:

    • native_type (FFI::Type)

      native type for new enum

    • values (Array)

      values for enum

Returns:



477
478
479
# File 'lib/ffi/library.rb', line 477

def enum(*args)
  generic_enum(FFI::Enum, *args)
end