dtr_to_rust 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generator.rb +17 -2
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f8ffe18cd1c5169a203c292b1fd332af60b45dfbbe8bfde84eef5e74f4fc5c5c
4
- data.tar.gz: 4bbf5c4defb3d4327404a90d814622937137b143afc4c84066756bc14b8056e1
3
+ metadata.gz: cb46c1422d17df3435c4e14aeb89f533cd11254e2403b5d3bbb5ac096601c36b
4
+ data.tar.gz: 170d3fa2036398a08eafad71dafd930c08809c0cb996026a97762c867a8211ea
5
5
  SHA512:
6
- metadata.gz: 5f42d9489161226e6a2c907cdb0de40b165fcbcb82059dad426df3de153e93536221a4b45b877f516d492790290a301ac4ca81de9da10340206e29d1dbdd5dd4
7
- data.tar.gz: 45eb7eb641f1ed13c24346576fceac9827633ab1d61de38f08372a518b5a513fa2814a2e61134c9a15cf6303692e0912c653bcf74cff3b4d097b9385af9d8160
6
+ metadata.gz: dbe8b2b0266cd6a5aa7446fcf26c986dd41e54662d59f186e2b446ad124a71c70f893b786eb300d67a51aea1392dc325c12c60f05ec568aa48007aacda5d2cd5
7
+ data.tar.gz: ad1e85bd2f9b50ad00e802de6244f88a853c6861d54dff172df4e319d669131ecd898e9495a27b3515fc1e5d88bdea4e042931b79d085834d21cc784721a5c10
data/lib/generator.rb CHANGED
@@ -60,17 +60,23 @@ module DTRToRust
60
60
  def generate_functions_each(functions)
61
61
  functions&.map do |function|
62
62
  return_string = "\n pub fn #{function.name}(#{generate_function_args(function)}) "
63
- return_string += "-> #{function.output}" if function.output
63
+ return_string += generate_function_output(function)
64
64
  return_string += " {\n#{generate_instructions_each(function.instructions)}\n }\n"
65
65
 
66
66
  return_string
67
67
  end&.join("\n")
68
68
  end
69
69
 
70
+ def generate_function_output(function)
71
+ return '' if function.output.nil?
72
+
73
+ "-> #{translate_type(function.output)}"
74
+ end
75
+
70
76
  def generate_function_args(function)
71
77
  all_inputs = [] + function.inputs
72
78
 
73
- all_inputs.map { |x| "#{x[:name]}: #{x[:type_name]}" }.join(', ')
79
+ all_inputs.map { |x| "#{x[:name]}: #{translate_type(x[:type_name])}" }.join(', ')
74
80
  end
75
81
 
76
82
  def generate_instructions_each(instructions)
@@ -83,5 +89,14 @@ module DTRToRust
83
89
  handler = InstructionHandler.new(instruction)
84
90
  handler.generate_rust
85
91
  end
92
+
93
+ def translate_type(type)
94
+ case type
95
+ when 'String'
96
+ 'Symbol'
97
+ else
98
+ type
99
+ end
100
+ end
86
101
  end
87
102
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dtr_to_rust
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Durst