pkg/context/value.go (26 lines of code) (raw):

package context import ( "strings" "google.golang.org/protobuf/types/known/structpb" ) // Value represents a result of an expression. // e.g. the result of 'Hello, ${{ env.USERNAME }' when all values have been interpolated. type Value struct { Value *structpb.Value Sensitive bool SensitiveReason string } func NewValue(value *structpb.Value, sensitive bool, sensitiveReasons ...string) *Value { if value == nil { panic("value must have an inner value") } return &Value{ Value: value, Sensitive: sensitive, SensitiveReason: strings.Join(sensitiveReasons, ","), } } func NewStringValue(value string, sensitive bool, sensitiveReasons ...string) *Value { return NewValue(structpb.NewStringValue(value), sensitive, sensitiveReasons...) } func NewNonSensitiveValue(value *structpb.Value) *Value { return NewValue(value, false) }