Documentation ¶
Overview ¶
Package vars contains basic types for manipulating Elvish variables.
Index ¶
- Variables
- func DelElement(variable Var, indicies []interface{}) error
- func ElementErrorLevel(err error) int
- func IsBlackhole(v Var) bool
- type PtrVar
- type Var
- func FromEnv(name string) Var
- func FromGet(get func() interface{}) Var
- func FromInit(v 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 NewBlackhole() Var
- func NewReadOnly(v interface{}) Var
Constants ¶
This section is empty.
Variables ¶
var ErrSetReadOnlyVar = errors.New("read-only variable; cannot be set")
ErrSetReadOnlyVar is returned by the Set method of a read-only variable.
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 PtrVar ¶
type PtrVar struct {
// contains filtered or unexported fields
}
func FromPtr ¶
func FromPtr(p interface{}) PtrVar
FromPtr creates a variable from a pointer. The variable is kept in sync with the value the pointer points to, converting with vals.ScanToGo and vals.FromGo when Get and Set. Its access is guarded by a new mutex.
func FromPtrWithMutex ¶
FromPtrWithMutex creates a variable from a pointer. The variable is kept in sync with the value the pointer points to, converting with vals.ScanToGo and vals.FromGo when Get and Set. Its access is guarded by the supplied mutex.
func (PtrVar) Get ¶
func (v PtrVar) Get() interface{}
Get returns the value pointed by the pointer, after conversion using FromGo.
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 FromInit ¶
func FromInit(v interface{}) Var
FromInit creates a variable with an initial value. The variable created can be assigned values of any type.
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 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 NewReadOnly ¶
func NewReadOnly(v interface{}) Var
NewReadOnly creates a variable that is read-only and always returns an error on Set.