Documentation ¶
Overview ¶
Package vars contains basic types for manipulating Elvish variables.
Index ¶
- func DelElement(variable Var, indicies []interface{}) error
- func ElementErrorLevel(err error) int
- func IsBlackhole(v Var) bool
- type Var
- func FromGet(get func() interface{}) Var
- func FromPtr(p interface{}) Var
- func FromSetGet(set func(interface{}) error, get func() interface{}) Var
- func HeadOfElement(v Var) Var
- func MakeElement(v Var, indicies []interface{}) (Var, error)
- func NewAnyWithInit(v interface{}) Var
- func NewBlackhole() Var
- func NewElement(v Var, a []interface{}, i []interface{}) Var
- func NewEnv(name string) Var
- func NewRo(v interface{}) Var
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DelElement ¶
DelElement deletes an element. It uses a similar process to MakeElement, except that the last level of container needs to be Dissoc-able instead of Assoc-able.
func ElementErrorLevel ¶
ElementErrorLevel returns the level of an error returned by MakeElement or DelElement. Level 0 represents that the error is about the variable itself. If the argument was not returned from MakeVariable, -1 is returned.
func IsBlackhole ¶
IsBlackhole returns whether the variable is a blackhole variable.
Types ¶
type Var ¶
type Var interface { Set(v interface{}) error Get() interface{} }
Var represents an Elvish variable.
func FromGet ¶
func FromGet(get func() interface{}) Var
FromGet makes a variable from a get callback. The variable is read-only.
func FromPtr ¶
func FromPtr(p interface{}) Var
FromPtr creates a variable from a pointer. The variable is kept in sync with the value the pointer points to, using elvToGo and goToElv conversions when Get and Set.
func FromSetGet ¶
FromSetGet makes a variable from a set callback and a get callback.
func HeadOfElement ¶
HeadOfElement gets the underlying head variable of an element variable, or nil if the argument is not an element variable.
func MakeElement ¶
MakeElement returns a variable, that when set, simulates the mutation of an element.
func NewAnyWithInit ¶
func NewAnyWithInit(v interface{}) Var
NewAnyWithInit creates a variable with an initial value. The variable created can be assigned values of any type.
func NewBlackhole ¶
func NewBlackhole() Var
NewBlackhole returns a blackhole variable. Assignments to a blackhole variable will be discarded, and getting a blackhole variable always returns an empty string.
func NewElement ¶
NewElement returns an ephemeral variable used for assigning variable element.