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.
- checksums.yaml +4 -4
- data/lib/generator.rb +17 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb46c1422d17df3435c4e14aeb89f533cd11254e2403b5d3bbb5ac096601c36b
|
4
|
+
data.tar.gz: 170d3fa2036398a08eafad71dafd930c08809c0cb996026a97762c867a8211ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 +=
|
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
|