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.



1307
1308
1309
1310
1311
# File 'lib/wardite.rb', line 1307

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

Instance Attribute Details

#callableObject

: wasmCallable



1301
1302
1303
# File 'lib/wardite.rb', line 1301

def callable
  @callable
end

#callsigObject

: Array



1297
1298
1299
# File 'lib/wardite.rb', line 1297

def callsig
  @callsig
end

#retsigObject

: Array



1299
1300
1301
# File 'lib/wardite.rb', line 1299

def retsig
  @retsig
end

Instance Method Details

#clone(override_type: nil) ⇒ Object



1315
1316
1317
1318
1319
1320
1321
1322
# File 'lib/wardite.rb', line 1315

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