Module: Solana::Ruby::Kit::InstructionPlans
- Extended by:
- T::Sig
- Defined in:
- lib/solana/ruby/kit/instruction_plans.rb,
lib/solana/ruby/kit/instruction_plans/plans.rb
Defined Under Namespace
Classes: ParallelInstructionPlan, SequentialInstructionPlan, SingleInstructionPlan
Class Method Summary
collapse
Class Method Details
.flatten_instruction_plan(plan) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/solana/ruby/kit/instruction_plans.rb', line 34
def flatten_instruction_plan(plan)
case plan
when SingleInstructionPlan
[plan.instruction]
when SequentialInstructionPlan
plan.steps.flat_map { |s| flatten_instruction_plan(s) }
when ParallelInstructionPlan
plan.plans.flat_map { |p| flatten_instruction_plan(p) }
else
Kernel.raise ArgumentError, "Unknown InstructionPlan type: #{plan.class}"
end
end
|
.parallel_instruction_plan(plans) ⇒ Object
28
29
30
|
# File 'lib/solana/ruby/kit/instruction_plans.rb', line 28
def parallel_instruction_plan(plans)
ParallelInstructionPlan.new(plans: plans)
end
|
.sequential_instruction_plan(steps, divisible: false) ⇒ Object
22
23
24
|
# File 'lib/solana/ruby/kit/instruction_plans.rb', line 22
def sequential_instruction_plan(steps, divisible: false)
SequentialInstructionPlan.new(steps: steps, divisible: divisible)
end
|
.single_instruction_plan(instruction) ⇒ Object
16
17
18
|
# File 'lib/solana/ruby/kit/instruction_plans.rb', line 16
def single_instruction_plan(instruction)
SingleInstructionPlan.new(instruction: instruction)
end
|