added helpers Dereference, Default, Concrete options to compiler.Value
Signed-off-by: Sam Alba <sam.alba@gmail.com>
This commit is contained in:
parent
4edc2ad38e
commit
df564dd877
@ -145,8 +145,10 @@ func (v *Value) List() ([]*Value, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Recursive concreteness check.
|
// Recursive concreteness check.
|
||||||
func (v *Value) IsConcreteR() error {
|
func (v *Value) IsConcreteR(opts ...cue.Option) error {
|
||||||
return v.val.Validate(cue.Concrete(true))
|
o := []cue.Option{cue.Concrete(true)}
|
||||||
|
o = append(o, opts...)
|
||||||
|
return v.val.Validate(o...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *Value) Walk(before func(*Value) bool, after func(*Value)) {
|
func (v *Value) Walk(before func(*Value) bool, after func(*Value)) {
|
||||||
@ -232,7 +234,7 @@ func (v *Value) Cue() cue.Value {
|
|||||||
|
|
||||||
// Returns true if value has a dagger attribute (eg. artifact, secret, input)
|
// Returns true if value has a dagger attribute (eg. artifact, secret, input)
|
||||||
func (v *Value) HasAttr(filter ...string) bool {
|
func (v *Value) HasAttr(filter ...string) bool {
|
||||||
attrs := v.val.Attributes(cue.FieldAttr)
|
attrs := v.val.Attributes(cue.ValueAttr)
|
||||||
|
|
||||||
for _, attr := range attrs {
|
for _, attr := range attrs {
|
||||||
name := attr.Name()
|
name := attr.Name()
|
||||||
@ -258,3 +260,13 @@ func (v *Value) HasAttr(filter ...string) bool {
|
|||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (v *Value) Dereference() *Value {
|
||||||
|
dVal := cue.Dereference(v.val)
|
||||||
|
return v.cc.Wrap(dVal)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *Value) Default() (*Value, bool) {
|
||||||
|
val, hasDef := v.val.Default()
|
||||||
|
return v.cc.Wrap(val), hasDef
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user