diff options
Diffstat (limited to 'pkg/values.go')
-rw-r--r-- | pkg/values.go | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/pkg/values.go b/pkg/values.go index 70fc9fe..c85de01 100644 --- a/pkg/values.go +++ b/pkg/values.go @@ -14,20 +14,19 @@ type Value interface { } func interfaceToValue(v any) Value { - if vv, ok := v.([]byte); ok { + switch vv := v.(type) { + case []byte: return &BytesValue{vv} - } - if vv, ok := v.(int); ok { + case int: return &IntValue{vv} - } - if vv, ok := v.(string); ok { + case string: return &StringValue{vv} - } - if vv, ok := v.(*VariablePromise); ok { + case *VariablePromise: return vv + default: + slog.Error("interfaceToValue", "value", v, "error", "Not Implemented") + panic(fmt.Sprintf("interfaceToValue cannot take type %T as argument. Value was %#v.", v, v)) } - slog.Error("interfaceToValue", "value", v, "error", "Not Implemented") - panic(fmt.Sprintf("interfaceToValue cannot take type %T as argument. Value was %#v.", v, v)) } func interfaceToTemplateValue(v any) Value { |