SILENT KILLERPanel

Current Path: > > opt > alt > > ruby31 > share > ruby > fiddle


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt//ruby31/share/ruby/fiddle

NameTypeSizeLast ModifiedActions
closure.rb File 1241 bytes April 28 2025 17:36:07.
cparser.rb File 8801 bytes April 28 2025 17:36:07.
function.rb File 539 bytes April 28 2025 17:36:07.
import.rb File 8988 bytes April 28 2025 17:36:07.
pack.rb File 3207 bytes April 28 2025 17:36:07.
struct.rb File 14544 bytes April 28 2025 17:36:07.
types.rb File 1942 bytes April 28 2025 17:36:07.
value.rb File 2936 bytes April 28 2025 17:36:07.
version.rb File 38 bytes April 28 2025 17:36:07.

Reading File: //opt/alt//ruby31/share/ruby/fiddle/closure.rb

# frozen_string_literal: true
module Fiddle
  class Closure

    # the C type of the return of the FFI closure
    attr_reader :ctype

    # arguments of the FFI closure
    attr_reader :args

    # Extends Fiddle::Closure to allow for building the closure in a block
    class BlockCaller < Fiddle::Closure

      # == Description
      #
      # Construct a new BlockCaller object.
      #
      # * +ctype+ is the C type to be returned
      # * +args+ are passed the callback
      # * +abi+ is the abi of the closure
      #
      # If there is an error in preparing the +ffi_cif+ or +ffi_prep_closure+,
      # then a RuntimeError will be raised.
      #
      # == Example
      #
      #   include Fiddle
      #
      #   cb = Closure::BlockCaller.new(TYPE_INT, [TYPE_INT]) do |one|
      #     one
      #   end
      #
      #   func = Function.new(cb, [TYPE_INT], TYPE_INT)
      #
      def initialize ctype, args, abi = Fiddle::Function::DEFAULT, &block
        super(ctype, args, abi)
        @block = block
      end

      # Calls the constructed BlockCaller, with +args+
      #
      # For an example see Fiddle::Closure::BlockCaller.new
      #
      def call *args
        @block.call(*args)
      end
    end
  end
end

SILENT KILLER Tool