-
Notifications
You must be signed in to change notification settings - Fork 136
/
starlark_fragment.go
31 lines (24 loc) · 1013 Bytes
/
starlark_fragment.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package yamltemplate
import (
"fmt"
tplcore "github.com/k14s/ytt/pkg/template/core"
"go.starlark.net/starlark"
)
type StarlarkFragment struct {
data interface{}
}
var _ starlark.Value = &StarlarkFragment{}
var _ tplcore.StarlarkValueToGoValueConversion = &StarlarkFragment{}
var _ tplcore.GoValueToStarlarkValueConversion = &StarlarkFragment{}
func NewStarlarkFragment(data interface{}) *StarlarkFragment {
return &StarlarkFragment{data}
}
func (s *StarlarkFragment) String() string { return "yamlfragment(...)" }
func (s *StarlarkFragment) Type() string { return "yamlfragment" }
func (s *StarlarkFragment) Freeze() {} // TODO
func (s *StarlarkFragment) Truth() starlark.Bool { return true } // TODO
func (s *StarlarkFragment) Hash() (uint32, error) {
return 0, fmt.Errorf("unhashable type: yamlfragment")
}
func (s *StarlarkFragment) AsGoValue() interface{} { return s.data }
func (s *StarlarkFragment) AsStarlarkValue() starlark.Value { return s }