dtr_to_rust 0.0.1 → 0.0.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 +12 -5
- 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: 99cb5bd9bbecdd7e38955c2d2c15e8ad746a0a0384ded632a825265335923573
|
4
|
+
data.tar.gz: a79bdec55b768d0bac92377e5ccd956dbd9ce6b5e206ebcd8a0da8091f0e1c3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fb2def5de76fdf1c470536ae88bac3d235e367d67b0681e9b21a28a656bd093558a055b0ca6dbe3653424591eaee4cc7b473afeeb2a7b478105932bb6f93aa9
|
7
|
+
data.tar.gz: e92bce3301fe1f5b55b51031f61722d759bcd329958ab5cc1ac81f780deea8ba07d03174496a380aa478d1d82387fecffac4339cf039f1a67d7505b5d11e0b72
|
data/lib/generator.rb
CHANGED
@@ -5,9 +5,8 @@ require 'dtr_core'
|
|
5
5
|
module DTRToRust
|
6
6
|
# Generates Rust code from a DTR contract
|
7
7
|
class Generator
|
8
|
-
def initialize(
|
9
|
-
@
|
10
|
-
@dtr_contract = ::DTRCore::Parser.parse(file_path)
|
8
|
+
def initialize(content)
|
9
|
+
@dtr_contract = ::DTRCore::Contract.from_dtr_raw(content)
|
11
10
|
end
|
12
11
|
|
13
12
|
def generate
|
@@ -21,6 +20,14 @@ module DTRToRust
|
|
21
20
|
@content
|
22
21
|
end
|
23
22
|
|
23
|
+
def self.generate_from_file(file_path)
|
24
|
+
new(File.read(file_path)).generate
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.generate_from_string(dtr_string)
|
28
|
+
new(dtr_string).generate
|
29
|
+
end
|
30
|
+
|
24
31
|
private
|
25
32
|
|
26
33
|
attr_reader :dtr_contract
|
@@ -49,10 +56,10 @@ module DTRToRust
|
|
49
56
|
end
|
50
57
|
|
51
58
|
def generate_functions_each(functions)
|
52
|
-
functions
|
59
|
+
functions&.map do |function|
|
53
60
|
"\n pub fn #{function.name}(#{generate_function_args(function)}) " \
|
54
61
|
"-> #{function.output} {\n#{generate_instructions_each(function.instructions)}\n }\n"
|
55
|
-
end
|
62
|
+
end&.join("\n")
|
56
63
|
end
|
57
64
|
|
58
65
|
def generate_function_args(function)
|