dtr_to_rust 0.2.1 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
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