aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/builtins.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rosa/builtins.go')
-rw-r--r--internal/rosa/builtins.go28
1 files changed, 26 insertions, 2 deletions
diff --git a/internal/rosa/builtins.go b/internal/rosa/builtins.go
index 6d457dbd..dbafa397 100644
--- a/internal/rosa/builtins.go
+++ b/internal/rosa/builtins.go
@@ -1,10 +1,13 @@
package rosa
import (
+ "io/fs"
+ "os"
"path"
"slices"
"strconv"
"strings"
+ "time"
"hakurei.app/internal/pkg"
)
@@ -115,8 +118,29 @@ func skipGNUTests(tests ...int64) string {
return buf.String()
}
-// builtin contains native and embedded [Artifact] registrations.
-var builtin S
+var (
+ // builtin contains native and embedded [Artifact] registrations.
+ builtin S
+
+ // parseTime is the duration of early parsing of built-in azalea expressions.
+ parseTime time.Duration
+)
+
+// ParseTime returns the time taken by early parsing of built-in azalea expressions.
+func ParseTime() time.Duration { return parseTime }
+
+func init() {
+ sub, err := fs.Sub(builtinAzalea, "package")
+ if err != nil {
+ panic(err)
+ }
+ t := time.Now()
+ if err = builtin.RegisterFS(sub); err != nil {
+ println(err.Error())
+ os.Exit(1)
+ }
+ parseTime = time.Since(t)
+}
// New returns the address of a newly populated [S] derived from built-ins.
func New() *S { return builtin.Clone() }