Skip to content

Commit 6403070

Browse files
authored
allow load modules with filters (#148)
1 parent 5cd5d71 commit 6403070

File tree

1 file changed

+36
-16
lines changed

1 file changed

+36
-16
lines changed

precompile/embed.go

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,26 @@ const (
1313
MinlibPath = "binaries/minlib"
1414
)
1515

16-
// ReadStdlib return stdlib module bytes
17-
func ReadStdlib() ([][]byte, error) {
18-
entries, err := files.ReadDir(StdlibPath)
19-
if err != nil {
20-
return nil, err
16+
// ReadStdlib return stdlib module bytes.
17+
//
18+
// If filters is empty, return all modules.
19+
// Ex) filters: "code.move", "coin.move"
20+
func ReadStdlib(filters ...string) ([][]byte, error) {
21+
if len(filters) == 0 {
22+
entries, err := files.ReadDir(StdlibPath)
23+
if err != nil {
24+
return nil, err
25+
}
26+
27+
filters = make([]string, len(entries))
28+
for i, entry := range entries {
29+
filters[i] = entry.Name()
30+
}
2131
}
2232

23-
modules := make([][]byte, len(entries))
24-
for i, entry := range entries {
25-
bz, err := files.ReadFile(path.Join(StdlibPath, entry.Name()))
33+
modules := make([][]byte, len(filters))
34+
for i, entry := range filters {
35+
bz, err := files.ReadFile(path.Join(StdlibPath, entry))
2636
if err != nil {
2737
return nil, err
2838
}
@@ -33,16 +43,26 @@ func ReadStdlib() ([][]byte, error) {
3343
return modules, nil
3444
}
3545

36-
// ReadMinlib return minlib module bytes
37-
func ReadMinlib() ([][]byte, error) {
38-
entries, err := files.ReadDir(MinlibPath)
39-
if err != nil {
40-
return nil, err
46+
// ReadMinlib return minlib module bytes.
47+
//
48+
// If filters is empty, return all modules.
49+
// Ex) filters: "code.move", "coin.move"
50+
func ReadMinlib(filters ...string) ([][]byte, error) {
51+
if len(filters) == 0 {
52+
entries, err := files.ReadDir(MinlibPath)
53+
if err != nil {
54+
return nil, err
55+
}
56+
57+
filters = make([]string, len(entries))
58+
for i, entry := range entries {
59+
filters[i] = entry.Name()
60+
}
4161
}
4262

43-
modules := make([][]byte, len(entries))
44-
for i, entry := range entries {
45-
bz, err := files.ReadFile(path.Join(MinlibPath, entry.Name()))
63+
modules := make([][]byte, len(filters))
64+
for i, entry := range filters {
65+
bz, err := files.ReadFile(path.Join(MinlibPath, entry))
4666
if err != nil {
4767
return nil, err
4868
}

0 commit comments

Comments
 (0)