elvish: github.com/elves/elvish/pkg/eval/vars Index | Files

package vars

import "github.com/elves/elvish/pkg/eval/vars"

Package vars contains basic types for manipulating Elvish variables.

Index

Package Files

blackhole.go callback.go element.go env.go ptr.go read_only.go vars.go

func DelElement Uses

func DelElement(variable Var, indicies []interface{}) error

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 Uses

func ElementErrorLevel(err error) int

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 Uses

func IsBlackhole(v Var) bool

IsBlackhole returns whether the variable is a blackhole variable.

type PtrVar Uses

type PtrVar struct {
    // contains filtered or unexported fields
}

func FromPtr Uses

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 Uses

func FromPtrWithMutex(p interface{}, m *sync.RWMutex) PtrVar

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 Uses

func (v PtrVar) Get() interface{}

Get returns the value pointed by the pointer, after conversion using FromGo.

func (PtrVar) GetRaw Uses

func (v PtrVar) GetRaw() interface{}

GetRaw returns the value pointed by the pointer without any conversion.

func (PtrVar) Set Uses

func (v PtrVar) Set(val interface{}) error

Get sets the value pointed by the pointer, after conversion using ScanToGo.

type Var Uses

type Var interface {
    Set(v interface{}) error
    Get() interface{}
}

Var represents an Elvish variable.

func FromEnv Uses

func FromEnv(name string) Var

FromEnv returns a Var corresponding to the named environment variable.

func FromGet Uses

func FromGet(get func() interface{}) Var

FromGet makes a variable from a get callback. The variable is read-only.

func FromInit Uses

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 Uses

func FromSetGet(set func(interface{}) error, get func() interface{}) Var

FromSetGet makes a variable from a set callback and a get callback.

func HeadOfElement Uses

func HeadOfElement(v Var) Var

HeadOfElement gets the underlying head variable of an element variable, or nil if the argument is not an element variable.

func MakeElement Uses

func MakeElement(v Var, indicies []interface{}) (Var, error)

MakeElement returns a variable, that when set, simulates the mutation of an element.

func NewBlackhole Uses

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 Uses

func NewReadOnly(v interface{}) Var

NewReadOnly creates a variable that is read-only and always returns an error on Set.

Package vars imports 5 packages (graph) and is imported by 4 packages. Updated 2019-12-23. Refresh now. Tools for package owners.