Class: Wardite::ExternalFunction

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

Overview

@rbs!

type wasmFuncReturn = Object|nil

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(target_module, name, callsig, retsig) ⇒ ExternalFunction

Returns a new instance of ExternalFunction.



1336
1337
1338
1339
1340
1341
# File 'lib/wardite.rb', line 1336

def initialize(target_module, name, callsig, retsig)
  @target_module = target_module
  @name = name
  @callsig = callsig
  @retsig = retsig
end

Instance Attribute Details

#callsigObject

: Array



1326
1327
1328
# File 'lib/wardite.rb', line 1326

def callsig
  @callsig
end

#nameObject

: Symbol



1324
1325
1326
# File 'lib/wardite.rb', line 1324

def name
  @name
end

#retsigObject

: Array



1328
1329
1330
# File 'lib/wardite.rb', line 1328

def retsig
  @retsig
end

#target_moduleObject

: wasmModule



1322
1323
1324
# File 'lib/wardite.rb', line 1322

def target_module
  @target_module
end

Instance Method Details

#callableObject



1344
1345
1346
# File 'lib/wardite.rb', line 1344

def callable()
  target_module.callable(self.name)
end

#clone(override_type: nil) ⇒ Object



1350
1351
1352
1353
1354
1355
1356
1357
# File 'lib/wardite.rb', line 1350

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