dataconv

package
v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2024 License: MIT Imports: 10 Imported by: 23

Documentation

Overview

Package dataconv provides helper functions to convert between Starlark and Go types. It works like package starlight, but only supports common Starlark and Go types, and won't wrap any custom types or functions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsEmptyString

func IsEmptyString(s starlark.String) bool

IsEmptyString checks is a starlark string is empty ("" for a go string) starlark.String.String performs repr-style quotation, which is necessary for the starlark.Value contract but a frequent source of errors in API clients. This helper method makes sure it'll work properly

func IsInterfaceNil

func IsInterfaceNil(i interface{}) bool

IsInterfaceNil returns true if the given interface is nil.

func Marshal

func Marshal(data interface{}) (v starlark.Value, err error)

Marshal converts Go values into Starlark types, like ToValue() of package starlight does. It only supports common Go types, won't wrap any custom types like Starlight does.

func MarshalStarlarkJSON

func MarshalStarlarkJSON(data starlark.Value, indent int) (string, error)

MarshalStarlarkJSON marshals a starlark.Value into a JSON string. It first converts the starlark.Value into a Golang value, then marshals it into JSON.

func Unmarshal

func Unmarshal(x starlark.Value) (val interface{}, err error)

Unmarshal converts a starlark.Value into it's Golang counterpart, like FromValue() of package starlight does.

Types

type Marshaler

type Marshaler interface {
	// MarshalStarlark marshal a custom type to Starlark object.
	MarshalStarlark() (starlark.Value, error)
}

Marshaler is the interface use to marshal Starlark from custom types, i.e. Go to Starlark.

type Unmarshaler

type Unmarshaler interface {
	// UnmarshalStarlark unmarshal a Starlark object to custom type.
	UnmarshalStarlark(starlark.Value) error
}

Unmarshaler is the interface use to unmarshal Starlark values to custom types, i.e. Starlark to Go.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL