Class: SorobanRustBackend::Instruction::Handler

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

Overview

This class is responsible for generating Rust code for the AddAndAssign instruction.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instruction, metadata) ⇒ Handler

Returns a new instance of Handler.



5
6
7
8
9
10
# File 'lib/instruction/handler.rb', line 5

def initialize(instruction, )
  @instruction = instruction
  @metadata = 

  format_assign
end

Class Method Details

.handle(instruction, metadata) ⇒ Object



26
27
28
# File 'lib/instruction/handler.rb', line 26

def self.handle(instruction, )
  new(instruction, ).handle
end

Instance Method Details

#format_assignObject



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/instruction/handler.rb', line 12

def format_assign
  return unless @instruction.assign&.include?('|||') && @instruction.assign.split('|||').size == 2

  var_name, type_name = @instruction.assign.split('|||')

  @instruction = DTRCore::Instruction.new(
    @instruction.instruction,
    @instruction.inputs,
    "#{var_name}: #{Common::TypeTranslator.translate_type(type_name)}",
    @instruction.scope,
    @instruction.id
  )
end