Class: SorobanRustBackend::Instruction::Handler
- Inherits:
-
Object
- Object
- SorobanRustBackend::Instruction::Handler
- Defined in:
- lib/instruction/handler.rb
Overview
This class is responsible for generating Rust code for the AddAndAssign instruction.
Direct Known Subclasses
And, Assign, BinaryInstruction, Break, EndOfIterationCheck, Evaluate, ExitWithMessage, Field, Increment, InstantiateObject, Jump, Or, Print, Return, TryAssign
Class Method Summary collapse
Instance Method Summary collapse
- #format_assign ⇒ Object
-
#initialize(instruction, metadata) ⇒ Handler
constructor
A new instance of Handler.
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_assign ⇒ Object
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 |