@@ -13,16 +13,26 @@ const (
13
13
MinlibPath = "binaries/minlib"
14
14
)
15
15
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
+ }
21
31
}
22
32
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 ))
26
36
if err != nil {
27
37
return nil , err
28
38
}
@@ -33,16 +43,26 @@ func ReadStdlib() ([][]byte, error) {
33
43
return modules , nil
34
44
}
35
45
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
+ }
41
61
}
42
62
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 ))
46
66
if err != nil {
47
67
return nil , err
48
68
}
0 commit comments