package output import "fmt" type Type int const ( TypeAny Type = iota TypeBool TypeInt TypeInt64 TypeUint TypeUint64 TypeFloat64 TypeString ) type Value struct { vtype Type value interface{} } func (v Value) String() string { return fmt.Sprint(v.value) } func AnyValue(v interface{}) Value { return Value{vtype: TypeAny, value: v} } func BoolValue(v bool) Value { return Value{vtype: TypeBool, value: v} } func IntValue(v int) Value { return Value{vtype: TypeInt, value: v} } func Int64Value(v int64) Value { return Value{vtype: TypeInt64, value: v} } func UintValue(v uint) Value { return Value{vtype: TypeUint, value: v} } func Uint64Value(v uint64) Value { return Value{vtype: TypeUint64, value: v} } func Float64Value(v float64) Value { return Value{vtype: TypeFloat64, value: v} } func StringValue(v string) Value { return Value{vtype: TypeString, value: v} }