...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package runtime
16
17 import (
18 "cuelang.org/go/cue/build"
19 "cuelang.org/go/internal"
20 )
21
22
23 type Runtime struct {
24 index *index
25
26 loaded map[*build.Instance]interface{}
27
28
29
30 interpreters map[string]Interpreter
31
32 version internal.EvaluatorVersion
33 }
34
35 func (r *Runtime) EvaluatorVersion() internal.EvaluatorVersion {
36 return r.version
37 }
38
39 func (r *Runtime) SetBuildData(b *build.Instance, x interface{}) {
40 r.loaded[b] = x
41 }
42
43 func (r *Runtime) BuildData(b *build.Instance) (x interface{}, ok bool) {
44 x, ok = r.loaded[b]
45 return x, ok
46 }
47
48
49 func New() *Runtime {
50 r := &Runtime{}
51 r.Init()
52 return r
53 }
54
55
56
57 func NewVersioned(v internal.EvaluatorVersion) *Runtime {
58 r := &Runtime{version: v}
59 r.Init()
60 return r
61 }
62
63
64 func (r *Runtime) IsInitialized() bool {
65 return r.index != nil
66 }
67
68 func (r *Runtime) Init() {
69 if r.index != nil {
70 return
71 }
72 r.index = newIndex()
73
74
75
76 r.index.builtinPaths = sharedIndex.builtinPaths
77 r.index.builtinShort = sharedIndex.builtinShort
78
79 r.loaded = map[*build.Instance]interface{}{}
80 }
81
View as plain text