12345678910111213141516171819202122232425262728293031323334353637 |
- package eapi
- import (
- "encoding/json"
- "github.com/spf13/cast"
- )
- // Var is an universal variable type implementer.
- type Var struct {
- value interface{} // Underlying value.
- }
- // NewVar creates and returns a new Var with given `value`.
- func NewVar(value interface{}) *Var {
- return &Var{
- value: value,
- }
- }
- // Bytes converts and returns `v` as []byte.
- func (v *Var) Bytes() ([]byte, error) {
- return json.Marshal(v.value)
- }
- // String converts and returns `v` as string.
- func (v *Var) String() string {
- return cast.ToString(v.value)
- }
- // Scan .
- func (v *Var) Scan(i any) (err error) {
- b, err := v.Bytes()
- if err = json.Unmarshal(b, &i); err != nil {
- return
- }
- return
- }
|