Documentation ¶
Overview ¶
Package types provides a framework for our language values and types.
Index ¶
- Variables
- type BoolValue
- func (obj *BoolValue) Bool() bool
- func (obj *BoolValue) Cmp(val Value) error
- func (obj *BoolValue) Copy() Value
- func (obj *BoolValue) Float() float64
- func (obj *BoolValue) Func() func([]Value) (Value, error)
- func (obj *BoolValue) Int() int64
- func (obj *BoolValue) Less(v Value) bool
- func (obj *BoolValue) List() []Value
- func (obj *BoolValue) Map() map[Value]Value
- func (obj *BoolValue) Str() string
- func (obj *BoolValue) String() string
- func (obj *BoolValue) Struct() map[string]Value
- func (obj *BoolValue) Type() *Type
- func (obj *BoolValue) Value() interface{}
- type FloatValue
- func (obj *FloatValue) Bool() bool
- func (obj *FloatValue) Cmp(val Value) error
- func (obj *FloatValue) Copy() Value
- func (obj *FloatValue) Float() float64
- func (obj *FloatValue) Func() func([]Value) (Value, error)
- func (obj *FloatValue) Int() int64
- func (obj *FloatValue) Less(v Value) bool
- func (obj *FloatValue) List() []Value
- func (obj *FloatValue) Map() map[Value]Value
- func (obj *FloatValue) Str() string
- func (obj *FloatValue) String() string
- func (obj *FloatValue) Struct() map[string]Value
- func (obj *FloatValue) Type() *Type
- func (obj *FloatValue) Value() interface{}
- type FuncValue
- func (obj *FuncValue) Bool() bool
- func (obj *FuncValue) Call(args []Value) (Value, error)
- func (obj *FuncValue) Cmp(val Value) error
- func (obj *FuncValue) Copy() Value
- func (obj *FuncValue) Float() float64
- func (obj *FuncValue) Func() func([]Value) (Value, error)
- func (obj *FuncValue) Int() int64
- func (obj *FuncValue) Less(v Value) bool
- func (obj *FuncValue) List() []Value
- func (obj *FuncValue) Map() map[Value]Value
- func (obj *FuncValue) Set(fn func([]Value) (Value, error))
- func (obj *FuncValue) Str() string
- func (obj *FuncValue) String() string
- func (obj *FuncValue) Struct() map[string]Value
- func (obj *FuncValue) Type() *Type
- func (obj *FuncValue) Value() interface{}
- type IntValue
- func (obj *IntValue) Bool() bool
- func (obj *IntValue) Cmp(val Value) error
- func (obj *IntValue) Copy() Value
- func (obj *IntValue) Float() float64
- func (obj *IntValue) Func() func([]Value) (Value, error)
- func (obj *IntValue) Int() int64
- func (obj *IntValue) Less(v Value) bool
- func (obj *IntValue) List() []Value
- func (obj *IntValue) Map() map[Value]Value
- func (obj *IntValue) Str() string
- func (obj *IntValue) String() string
- func (obj *IntValue) Struct() map[string]Value
- func (obj *IntValue) Type() *Type
- func (obj *IntValue) Value() interface{}
- type Kind
- type ListValue
- func (obj *ListValue) Add(v Value) error
- func (obj *ListValue) Bool() bool
- func (obj *ListValue) Cmp(val Value) error
- func (obj *ListValue) Contains(v Value) (index int, exists bool)
- func (obj *ListValue) Copy() Value
- func (obj *ListValue) Float() float64
- func (obj *ListValue) Func() func([]Value) (Value, error)
- func (obj *ListValue) Int() int64
- func (obj *ListValue) Less(v Value) bool
- func (obj *ListValue) List() []Value
- func (obj *ListValue) Lookup(index int) (value Value, exists bool)
- func (obj *ListValue) Map() map[Value]Value
- func (obj *ListValue) Str() string
- func (obj *ListValue) String() string
- func (obj *ListValue) Struct() map[string]Value
- func (obj *ListValue) Type() *Type
- func (obj *ListValue) Value() interface{}
- type MapValue
- func (obj *MapValue) Add(k, v Value) error
- func (obj *MapValue) Bool() bool
- func (obj *MapValue) Cmp(val Value) error
- func (obj *MapValue) Copy() Value
- func (obj *MapValue) Float() float64
- func (obj *MapValue) Func() func([]Value) (Value, error)
- func (obj *MapValue) Int() int64
- func (obj *MapValue) Less(v Value) bool
- func (obj *MapValue) List() []Value
- func (obj *MapValue) Lookup(key Value) (value Value, exists bool)
- func (obj *MapValue) Map() map[Value]Value
- func (obj *MapValue) Str() string
- func (obj *MapValue) String() string
- func (obj *MapValue) Struct() map[string]Value
- func (obj *MapValue) Type() *Type
- func (obj *MapValue) Value() interface{}
- type StrValue
- func (obj *StrValue) Bool() bool
- func (obj *StrValue) Cmp(val Value) error
- func (obj *StrValue) Copy() Value
- func (obj *StrValue) Float() float64
- func (obj *StrValue) Func() func([]Value) (Value, error)
- func (obj *StrValue) Int() int64
- func (obj *StrValue) Less(v Value) bool
- func (obj *StrValue) List() []Value
- func (obj *StrValue) Map() map[Value]Value
- func (obj *StrValue) Str() string
- func (obj *StrValue) String() string
- func (obj *StrValue) Struct() map[string]Value
- func (obj *StrValue) Type() *Type
- func (obj *StrValue) Value() interface{}
- type StructValue
- func (obj *StructValue) Bool() bool
- func (obj *StructValue) Cmp(val Value) error
- func (obj *StructValue) Copy() Value
- func (obj *StructValue) Float() float64
- func (obj *StructValue) Func() func([]Value) (Value, error)
- func (obj *StructValue) Int() int64
- func (obj *StructValue) Less(v Value) bool
- func (obj *StructValue) List() []Value
- func (obj *StructValue) Lookup(k string) (value Value, exists bool)
- func (obj *StructValue) Map() map[Value]Value
- func (obj *StructValue) Set(k string, v Value) error
- func (obj *StructValue) Str() string
- func (obj *StructValue) String() string
- func (obj *StructValue) Struct() map[string]Value
- func (obj *StructValue) Type() *Type
- func (obj *StructValue) Value() interface{}
- type Type
- type Value
- type ValueSlice
- type VariantValue
- func (obj *VariantValue) Bool() bool
- func (obj *VariantValue) Cmp(val Value) error
- func (obj *VariantValue) Copy() Value
- func (obj *VariantValue) Float() float64
- func (obj *VariantValue) Func() func([]Value) (Value, error)
- func (obj *VariantValue) Int() int64
- func (obj *VariantValue) Less(v Value) bool
- func (obj *VariantValue) List() []Value
- func (obj *VariantValue) Map() map[Value]Value
- func (obj *VariantValue) Str() string
- func (obj *VariantValue) String() string
- func (obj *VariantValue) Struct() map[string]Value
- func (obj *VariantValue) Type() *Type
- func (obj *VariantValue) Value() interface{}
Constants ¶
This section is empty.
Variables ¶
var ( TypeBool = NewType("bool") TypeStr = NewType("str") TypeInt = NewType("int") TypeFloat = NewType("float") TypeVariant = NewType("variant") )
Basic types defined here as a convenience for use with Type.Cmp(X).
Functions ¶
This section is empty.
Types ¶
type BoolValue ¶
type BoolValue struct { V bool // contains filtered or unexported fields }
BoolValue represents a boolean value.
func (*BoolValue) Bool ¶
Bool represents the value of this type as a bool if it is one. If this is not a bool, then this panics.
func (*BoolValue) Float ¶
func (obj *BoolValue) Float() float64
Float represents the value of this type as a float if it is one. If this is not a float, then this panics.
func (*BoolValue) Func ¶
Func represents the value of this type as a function if it is one. If this is not a function, then this panics.
func (*BoolValue) Int ¶
func (obj *BoolValue) Int() int64
Int represents the value of this type as an integer if it is one. If this is not an integer, then this panics.
func (*BoolValue) Less ¶
Less compares to value and returns true if we're smaller. This panics if the two types aren't the same.
func (*BoolValue) List ¶
func (obj *BoolValue) List() []Value
List represents the value of this type as a list if it is one. If this is not a list, then this panics.
func (*BoolValue) Map ¶
Map represents the value of this type as a dictionary if it is one. If this is not a map, then this panics.
func (*BoolValue) Str ¶
func (obj *BoolValue) Str() string
Str represents the value of this type as a string if it is one. If this is not a string, then this panics.
func (*BoolValue) Struct ¶
Struct represents the value of this type as a struct if it is one. If this is not a struct, then this panics.
type FloatValue ¶
type FloatValue struct { V float64 // contains filtered or unexported fields }
FloatValue represents an integer value.
func (*FloatValue) Bool ¶
func (obj *FloatValue) Bool() bool
Bool represents the value of this type as a bool if it is one. If this is not a bool, then this panics.
func (*FloatValue) Cmp ¶
func (obj *FloatValue) Cmp(val Value) error
Cmp returns an error if this value isn't the same as the arg passed in.
func (*FloatValue) Float ¶
func (obj *FloatValue) Float() float64
Float represents the value of this type as a float if it is one. If this is not a float, then this panics.
func (*FloatValue) Func ¶
Func represents the value of this type as a function if it is one. If this is not a function, then this panics.
func (*FloatValue) Int ¶
func (obj *FloatValue) Int() int64
Int represents the value of this type as an integer if it is one. If this is not an integer, then this panics.
func (*FloatValue) Less ¶
func (obj *FloatValue) Less(v Value) bool
Less compares to value and returns true if we're smaller. This panics if the two types aren't the same.
func (*FloatValue) List ¶
func (obj *FloatValue) List() []Value
List represents the value of this type as a list if it is one. If this is not a list, then this panics.
func (*FloatValue) Map ¶
Map represents the value of this type as a dictionary if it is one. If this is not a map, then this panics.
func (*FloatValue) Str ¶
func (obj *FloatValue) Str() string
Str represents the value of this type as a string if it is one. If this is not a string, then this panics.
func (*FloatValue) String ¶
func (obj *FloatValue) String() string
String returns a visual representation of this value.
func (*FloatValue) Struct ¶
Struct represents the value of this type as a struct if it is one. If this is not a struct, then this panics.
func (*FloatValue) Type ¶
func (obj *FloatValue) Type() *Type
Type returns the type data structure that represents this type.
func (*FloatValue) Value ¶
func (obj *FloatValue) Value() interface{}
Value returns the raw value of this type.
type FuncValue ¶
type FuncValue struct { V func([]Value) (Value, error) T *Type // contains ordered field types, arg names are a bonus part // contains filtered or unexported fields }
FuncValue represents a function value. The defined function takes a list of Value arguments and returns a Value. It can also return an error which could represent that something went horribly wrong. (Think, an internal panic.)
func (*FuncValue) Bool ¶
func (obj *FuncValue) Bool() bool
Bool represents the value of this type as a bool if it is one. If this is not a bool, then this panics.
func (*FuncValue) Call ¶
Call runs the function value and returns its result. It returns an error if something goes wrong during execution, and panic's if you call this with inappropriate input types, or if it returns an inappropriate output type.
func (*FuncValue) Float ¶
func (obj *FuncValue) Float() float64
Float represents the value of this type as a float if it is one. If this is not a float, then this panics.
func (*FuncValue) Func ¶
Func represents the value of this type as a function if it is one. If this is not a function, then this panics.
func (*FuncValue) Int ¶
func (obj *FuncValue) Int() int64
Int represents the value of this type as an integer if it is one. If this is not an integer, then this panics.
func (*FuncValue) Less ¶
Less compares to value and returns true if we're smaller. This panics if the two types aren't the same.
func (*FuncValue) List ¶
func (obj *FuncValue) List() []Value
List represents the value of this type as a list if it is one. If this is not a list, then this panics.
func (*FuncValue) Map ¶
Map represents the value of this type as a dictionary if it is one. If this is not a map, then this panics.
func (*FuncValue) Str ¶
func (obj *FuncValue) Str() string
Str represents the value of this type as a string if it is one. If this is not a string, then this panics.
func (*FuncValue) Struct ¶
Struct represents the value of this type as a struct if it is one. If this is not a struct, then this panics.
type IntValue ¶
type IntValue struct { V int64 // contains filtered or unexported fields }
IntValue represents an integer value.
func (*IntValue) Bool ¶
func (obj *IntValue) Bool() bool
Bool represents the value of this type as a bool if it is one. If this is not a bool, then this panics.
func (*IntValue) Float ¶
func (obj *IntValue) Float() float64
Float represents the value of this type as a float if it is one. If this is not a float, then this panics.
func (*IntValue) Func ¶
Func represents the value of this type as a function if it is one. If this is not a function, then this panics.
func (*IntValue) Int ¶
Int represents the value of this type as an integer if it is one. If this is not an integer, then this panics.
func (*IntValue) Less ¶
Less compares to value and returns true if we're smaller. This panics if the two types aren't the same.
func (*IntValue) List ¶
func (obj *IntValue) List() []Value
List represents the value of this type as a list if it is one. If this is not a list, then this panics.
func (*IntValue) Map ¶
Map represents the value of this type as a dictionary if it is one. If this is not a map, then this panics.
func (*IntValue) Str ¶
func (obj *IntValue) Str() string
Str represents the value of this type as a string if it is one. If this is not a string, then this panics.
func (*IntValue) Struct ¶
Struct represents the value of this type as a struct if it is one. If this is not a struct, then this panics.
type Kind ¶
type Kind int // this used to be called Type
The Kind represents the base type of each value.
type ListValue ¶
type ListValue struct { V []Value // all elements must have type T.Val T *Type // contains filtered or unexported fields }
ListValue represents a list value.
func (*ListValue) Bool ¶
func (obj *ListValue) Bool() bool
Bool represents the value of this type as a bool if it is one. If this is not a bool, then this panics.
func (*ListValue) Contains ¶
Contains searches for a value in the list. On success it returns the index.
func (*ListValue) Float ¶
func (obj *ListValue) Float() float64
Float represents the value of this type as a float if it is one. If this is not a float, then this panics.
func (*ListValue) Func ¶
Func represents the value of this type as a function if it is one. If this is not a function, then this panics.
func (*ListValue) Int ¶
func (obj *ListValue) Int() int64
Int represents the value of this type as an integer if it is one. If this is not an integer, then this panics.
func (*ListValue) Less ¶
Less compares to value and returns true if we're smaller. This panics if the two types aren't the same.
func (*ListValue) List ¶
List represents the value of this type as a list if it is one. If this is not a list, then this panics.
func (*ListValue) Map ¶
Map represents the value of this type as a dictionary if it is one. If this is not a map, then this panics.
func (*ListValue) Str ¶
func (obj *ListValue) Str() string
Str represents the value of this type as a string if it is one. If this is not a string, then this panics.
func (*ListValue) Struct ¶
Struct represents the value of this type as a struct if it is one. If this is not a struct, then this panics.
type MapValue ¶
type MapValue struct { // the types of all keys and values are represented inside of T V map[Value]Value T *Type // contains filtered or unexported fields }
MapValue represents a dictionary value.
func (*MapValue) Bool ¶
func (obj *MapValue) Bool() bool
Bool represents the value of this type as a bool if it is one. If this is not a bool, then this panics.
func (*MapValue) Float ¶
func (obj *MapValue) Float() float64
Float represents the value of this type as a float if it is one. If this is not a float, then this panics.
func (*MapValue) Func ¶
Func represents the value of this type as a function if it is one. If this is not a function, then this panics.
func (*MapValue) Int ¶
func (obj *MapValue) Int() int64
Int represents the value of this type as an integer if it is one. If this is not an integer, then this panics.
func (*MapValue) Less ¶
Less compares to value and returns true if we're smaller. This panics if the two types aren't the same.
func (*MapValue) List ¶
func (obj *MapValue) List() []Value
List represents the value of this type as a list if it is one. If this is not a list, then this panics.
func (*MapValue) Map ¶
Map represents the value of this type as a dictionary if it is one. If this is not a map, then this panics.
func (*MapValue) Str ¶
func (obj *MapValue) Str() string
Str represents the value of this type as a string if it is one. If this is not a string, then this panics.
func (*MapValue) Struct ¶
Struct represents the value of this type as a struct if it is one. If this is not a struct, then this panics.
type StrValue ¶
type StrValue struct { V string // contains filtered or unexported fields }
StrValue represents a string value.
func (*StrValue) Bool ¶
func (obj *StrValue) Bool() bool
Bool represents the value of this type as a bool if it is one. If this is not a bool, then this panics.
func (*StrValue) Float ¶
func (obj *StrValue) Float() float64
Float represents the value of this type as a float if it is one. If this is not a float, then this panics.
func (*StrValue) Func ¶
Func represents the value of this type as a function if it is one. If this is not a function, then this panics.
func (*StrValue) Int ¶
func (obj *StrValue) Int() int64
Int represents the value of this type as an integer if it is one. If this is not an integer, then this panics.
func (*StrValue) Less ¶
Less compares to value and returns true if we're smaller. This panics if the two types aren't the same.
func (*StrValue) List ¶
func (obj *StrValue) List() []Value
List represents the value of this type as a list if it is one. If this is not a list, then this panics.
func (*StrValue) Map ¶
Map represents the value of this type as a dictionary if it is one. If this is not a map, then this panics.
func (*StrValue) Str ¶
Str represents the value of this type as a string if it is one. If this is not a string, then this panics.
func (*StrValue) Struct ¶
Struct represents the value of this type as a struct if it is one. If this is not a struct, then this panics.
type StructValue ¶
type StructValue struct { V map[string]Value // each field can have a different type T *Type // contains ordered field types // contains filtered or unexported fields }
StructValue represents a struct value. The keys are ordered. TODO: if all functions require arg names to call, we don't need to order!
func NewStruct ¶
func NewStruct(t *Type) *StructValue
NewStruct creates a new struct with the specified field types.
func (*StructValue) Bool ¶
func (obj *StructValue) Bool() bool
Bool represents the value of this type as a bool if it is one. If this is not a bool, then this panics.
func (*StructValue) Cmp ¶
func (obj *StructValue) Cmp(val Value) error
Cmp returns an error if this value isn't the same as the arg passed in.
func (*StructValue) Float ¶
func (obj *StructValue) Float() float64
Float represents the value of this type as a float if it is one. If this is not a float, then this panics.
func (*StructValue) Func ¶
Func represents the value of this type as a function if it is one. If this is not a function, then this panics.
func (*StructValue) Int ¶
func (obj *StructValue) Int() int64
Int represents the value of this type as an integer if it is one. If this is not an integer, then this panics.
func (*StructValue) Less ¶
func (obj *StructValue) Less(v Value) bool
Less compares to value and returns true if we're smaller. This panics if the two types aren't the same.
func (*StructValue) List ¶
func (obj *StructValue) List() []Value
List represents the value of this type as a list if it is one. If this is not a list, then this panics.
func (*StructValue) Lookup ¶
func (obj *StructValue) Lookup(k string) (value Value, exists bool)
Lookup searches the struct for a key. On success it also returns the Value.
func (*StructValue) Map ¶
Map represents the value of this type as a dictionary if it is one. If this is not a map, then this panics.
func (*StructValue) Set ¶
func (obj *StructValue) Set(k string, v Value) error
Set sets a field to this value. It errors if the types do not match.
func (*StructValue) Str ¶
func (obj *StructValue) Str() string
Str represents the value of this type as a string if it is one. If this is not a string, then this panics.
func (*StructValue) String ¶
func (obj *StructValue) String() string
String returns a visual representation of this value.
func (*StructValue) Struct ¶
func (obj *StructValue) Struct() map[string]Value
Struct represents the value of this type as a struct if it is one. If this is not a struct, then this panics.
func (*StructValue) Type ¶
func (obj *StructValue) Type() *Type
Type returns the type data structure that represents this type.
func (*StructValue) Value ¶
func (obj *StructValue) Value() interface{}
Value returns the raw value of this type.
type Type ¶
type Type struct { Kind Kind Val *Type // if Kind == List, use Val only Key *Type // if Kind == Map, use Val and Key Map map[string]*Type // if Kind == Struct, use Map and Ord (for order) Ord []string Out *Type // if Kind == Func, use Map and Ord for Input, Out for Output Var *Type // if Kind == Variant, use Var only }
Type is the datastructure representing any type. It can be recursive for container types like lists, maps, and structs. TODO: should we create a `Type` interface?
func TypeOf ¶
TypeOf takes a reflect.Type and returns an equivalent *Type. It removes any pointers since our language does not support pointers. It returns nil if it cannot represent the type in our type system. Common examples of things it cannot express include reflect.Invalid, reflect.Interface, Reflect.Complex128 and more. It is not reversible because some information may be either added or lost. For example, reflect.Array and reflect.Slice are both converted to a Type of KindList, and KindFunc names the arguments of a func sequentially. The lossy inverse of this is Reflect.
func (*Type) ComplexCmp ¶
ComplexCmp tells us if the input type is compatible with the concrete one. It can match against types containing variants, or against partial types. If the two types are equivalent, it will return nil. If the input type is identical, and concrete, the return status will be the empty string. If this match finds a possibility against a partial type, the status will be set to the "partial" string, and if it is compatible with the variant type it will be "variant"... Comparing to a partial can only match "impossible" (error) or possible (nil).
func (*Type) HasVariant ¶
HasVariant tells us if the type contains any mention of the Variant type.
func (*Type) Reflect ¶
Reflect returns a representative type satisfying the golang Type Interface. The lossy inverse of this is TypeOf.
func (*Type) Underlying ¶
Underlying returns the underlying type of the type in question. For variants, this unpacks them recursively, for everything else this returns itself.
type Value ¶
type Value interface { fmt.Stringer // String() string (for display purposes) Type() *Type Less(Value) bool // to find the smaller of the two values (for sort) Cmp(Value) error // error if the two values aren't the same Copy() Value // returns a copy of this value Value() interface{} Bool() bool Str() string Int() int64 Float() float64 List() []Value Map() map[Value]Value // keys must all have same type, same for values Struct() map[string]Value Func() func([]Value) (Value, error) }
Value represents an interface to get values out of each type. It is similar to the reflection interfaces used in the golang standard library.
type ValueSlice ¶
type ValueSlice []Value
ValueSlice is a linear list of values. It is used for sorting purposes.
func (ValueSlice) Len ¶
func (vs ValueSlice) Len() int
func (ValueSlice) Less ¶
func (vs ValueSlice) Less(i, j int) bool
func (ValueSlice) Swap ¶
func (vs ValueSlice) Swap(i, j int)
type VariantValue ¶
type VariantValue struct { V Value // formerly I experimented with using interface{} instead T *Type // contains filtered or unexported fields }
VariantValue represents a variant value.
func NewVariant ¶
func NewVariant(t *Type) *VariantValue
NewVariant creates a new variant value. TODO: I haven't thought about this thoroughly yet.
func (*VariantValue) Bool ¶
func (obj *VariantValue) Bool() bool
Bool represents the value of this type as a bool if it is one. If this is not a bool, then this panics.
func (*VariantValue) Cmp ¶
func (obj *VariantValue) Cmp(val Value) error
Cmp returns an error if this value isn't the same as the arg passed in.
func (*VariantValue) Copy ¶
func (obj *VariantValue) Copy() Value
Copy returns a copy of this value.
func (*VariantValue) Float ¶
func (obj *VariantValue) Float() float64
Float represents the value of this type as a float if it is one. If this is not a float, then this panics.
func (*VariantValue) Func ¶
func (obj *VariantValue) Func() func([]Value) (Value, error)
Func represents the value of this type as a function if it is one. If this is not a function, then this panics.
func (*VariantValue) Int ¶
func (obj *VariantValue) Int() int64
Int represents the value of this type as an integer if it is one. If this is not an integer, then this panics.
func (*VariantValue) Less ¶
func (obj *VariantValue) Less(v Value) bool
Less compares to value and returns true if we're smaller. This panics if the two types aren't the same. For variants, the two sub types must be the same.
func (*VariantValue) List ¶
func (obj *VariantValue) List() []Value
List represents the value of this type as a list if it is one. If this is not a list, then this panics.
func (*VariantValue) Map ¶
func (obj *VariantValue) Map() map[Value]Value
Map represents the value of this type as a dictionary if it is one. If this is not a map, then this panics.
func (*VariantValue) Str ¶
func (obj *VariantValue) Str() string
Str represents the value of this type as a string if it is one. If this is not a string, then this panics.
func (*VariantValue) String ¶
func (obj *VariantValue) String() string
String returns a visual representation of this value.
func (*VariantValue) Struct ¶
func (obj *VariantValue) Struct() map[string]Value
Struct represents the value of this type as a struct if it is one. If this is not a struct, then this panics.
func (*VariantValue) Type ¶
func (obj *VariantValue) Type() *Type
Type returns the type data structure that represents this type.
func (*VariantValue) Value ¶
func (obj *VariantValue) Value() interface{}
Value returns the raw value of this type.