Sha256: ab5d143d5fd35e375f85efd79274f54de73042540b07df55b7b03f91c24615d3

Contents?: true

Size: 687 Bytes

Versions: 2

Compression:

Stored size: 687 Bytes

Contents

# This is free and unencumbered software released into the public domain.

require_relative 'type'

module FFIDB
  class Parameter < ::Struct.new(:name, :type)
    include Comparable

    ##
    # @param  [Symbol, #to_sym] name
    # @param  [Type] type
    def initialize(name, type = nil)
      super(name.to_sym, type ? Type.for(type) : nil)
    end

    ##
    # @param  [Parameter] other
    # @return [Integer]
    def <=>(other)
      self.name <=> other.name
    end

    ##
    # @return [String]
    def to_s
      "#{self.name}: #{self.type}"
    end

    ##
    # @return [Hash<Symbol, Type>]
    def to_h
      {self.name => self.type}
    end
  end # Parameter
end # FFIDB

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ffidb-0.13.0 lib/ffidb/parameter.rb
ffidb-0.12.0 lib/ffidb/parameter.rb