Class: Wardite::ExternalFunction

Inherits:
Object
  • Object
show all
Defined in:
lib/wardite.rb

Overview

@rbs!

type wasmFuncReturn = Object|nil
type wasmCallable = ^(Store, Array[wasmValue]) -> wasmFuncReturn

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(callsig, retsig, callable) ⇒ ExternalFunction

Returns a new instance of ExternalFunction.



1279
1280
1281
1282
1283
# File 'lib/wardite.rb', line 1279

def initialize(callsig, retsig, callable)
  @callsig = callsig
  @retsig = retsig
  @callable = callable
end

Instance Attribute Details

#callableObject

: wasmCallable



1273
1274
1275
# File 'lib/wardite.rb', line 1273

def callable
  @callable
end

#callsigObject

: Array



1269
1270
1271
# File 'lib/wardite.rb', line 1269

def callsig
  @callsig
end

#retsigObject

: Array



1271
1272
1273
# File 'lib/wardite.rb', line 1271

def retsig
  @retsig
end

Instance Method Details

#clone(override_type: nil) ⇒ Object



1287
1288
1289
1290
1291
1292
1293
1294
# File 'lib/wardite.rb', line 1287

def clone(override_type: nil)
  if override_type
    # callable is assumed to be frozen, so we can copy its ref
    ExternalFunction.new(override_type.callsig, override_type.retsig, callable)
  else
    ExternalFunction.new(callsig, retsig, callable)
  end
end