Documentation
¶
Index ¶
- Constants
- Variables
- func AsError(obj Object) string
- func ClearGCReleaseHook(target any) error
- func DictKey(obj Object) string
- func DictStringKey(name string) string
- func GetFloatArrayData(obj Object) ([]float64, []int, bool)
- func GetFloatMatrix(obj Object) (data []float64, rows, cols int, ok bool)
- func InstanceDataFromContext(ctx context.Context) any
- func IsError(obj Object) bool
- func IsFloatArray(obj Object) bool
- func IsHashable(obj Object) bool
- func ReleaseCallEnvironment(env *Environment)
- func SetGCReleaseHook(target any, hook func()) error
- func ValidateTransferable(obj Object) error
- type Boolean
- func (b *Boolean) AsBool() (bool, Object)
- func (b *Boolean) AsDict() (map[string]Object, Object)
- func (b *Boolean) AsFloat() (float64, Object)
- func (b *Boolean) AsInt() (int64, Object)
- func (b *Boolean) AsList() ([]Object, Object)
- func (b *Boolean) AsString() (string, Object)
- func (b *Boolean) BoolValue() bool
- func (b *Boolean) CoerceFloat() (float64, Object)
- func (b *Boolean) CoerceInt() (int64, Object)
- func (b *Boolean) CoerceString() (string, Object)
- func (b *Boolean) Inspect() string
- func (b *Boolean) Type() ObjectType
- type BoundMethod
- func (bm *BoundMethod) AsBool() (bool, Object)
- func (bm *BoundMethod) AsDict() (map[string]Object, Object)
- func (bm *BoundMethod) AsFloat() (float64, Object)
- func (bm *BoundMethod) AsInt() (int64, Object)
- func (bm *BoundMethod) AsList() ([]Object, Object)
- func (bm *BoundMethod) AsString() (string, Object)
- func (bm *BoundMethod) CoerceFloat() (float64, Object)
- func (bm *BoundMethod) CoerceInt() (int64, Object)
- func (bm *BoundMethod) CoerceString() (string, Object)
- func (bm *BoundMethod) Inspect() string
- func (bm *BoundMethod) SelfArgs() []Object
- func (bm *BoundMethod) Type() ObjectType
- type Break
- func (b *Break) AsBool() (bool, Object)
- func (b *Break) AsDict() (map[string]Object, Object)
- func (b *Break) AsFloat() (float64, Object)
- func (b *Break) AsInt() (int64, Object)
- func (b *Break) AsList() ([]Object, Object)
- func (b *Break) AsString() (string, Object)
- func (b *Break) CoerceFloat() (float64, Object)
- func (b *Break) CoerceInt() (int64, Object)
- func (b *Break) CoerceString() (string, Object)
- func (b *Break) Inspect() string
- func (b *Break) Type() ObjectType
- type Builtin
- func (b *Builtin) AsBool() (bool, Object)
- func (b *Builtin) AsDict() (map[string]Object, Object)
- func (b *Builtin) AsFloat() (float64, Object)
- func (b *Builtin) AsInt() (int64, Object)
- func (b *Builtin) AsList() ([]Object, Object)
- func (b *Builtin) AsString() (string, Object)
- func (b *Builtin) CoerceFloat() (float64, Object)
- func (b *Builtin) CoerceInt() (int64, Object)
- func (b *Builtin) CoerceString() (string, Object)
- func (b *Builtin) Inspect() string
- func (b *Builtin) Type() ObjectType
- type BuiltinFunction
- type CallableSnapshot
- type Class
- func (c *Class) AsBool() (bool, Object)
- func (c *Class) AsDict() (map[string]Object, Object)
- func (c *Class) AsFloat() (float64, Object)
- func (c *Class) AsInt() (int64, Object)
- func (c *Class) AsList() ([]Object, Object)
- func (c *Class) AsString() (string, Object)
- func (c *Class) CoerceFloat() (float64, Object)
- func (c *Class) CoerceInt() (int64, Object)
- func (c *Class) CoerceString() (string, Object)
- func (c *Class) Inspect() string
- func (c *Class) InvalidateLookupCache()
- func (c *Class) LookupMember(name string) (Object, bool)
- func (c *Class) Type() ObjectType
- type ClassBuilder
- func (cb *ClassBuilder) BaseClass(base *Class) *ClassBuilder
- func (cb *ClassBuilder) Build() *Class
- func (cb *ClassBuilder) Constructor(fn interface{}) *ClassBuilder
- func (cb *ClassBuilder) Environment(env *Environment) *ClassBuilder
- func (cb *ClassBuilder) Method(name string, fn interface{}) *ClassBuilder
- func (cb *ClassBuilder) MethodWithHelp(name string, fn interface{}, helpText string) *ClassBuilder
- func (cb *ClassBuilder) Property(name string, fn interface{}) *ClassBuilder
- func (cb *ClassBuilder) PropertyWithSetter(name string, getter interface{}, setter interface{}) *ClassBuilder
- func (cb *ClassBuilder) StaticMethod(name string, fn interface{}) *ClassBuilder
- type ClassMethod
- func (c *ClassMethod) AsBool() (bool, Object)
- func (c *ClassMethod) AsDict() (map[string]Object, Object)
- func (c *ClassMethod) AsFloat() (float64, Object)
- func (c *ClassMethod) AsInt() (int64, Object)
- func (c *ClassMethod) AsList() ([]Object, Object)
- func (c *ClassMethod) AsString() (string, Object)
- func (c *ClassMethod) CoerceFloat() (float64, Object)
- func (c *ClassMethod) CoerceInt() (int64, Object)
- func (c *ClassMethod) CoerceString() (string, Object)
- func (c *ClassMethod) Inspect() string
- func (c *ClassMethod) Type() ObjectType
- type ClientWrapper
- func (w *ClientWrapper) AsBool() (bool, Object)
- func (w *ClientWrapper) AsDict() (map[string]Object, Object)
- func (w *ClientWrapper) AsFloat() (float64, Object)
- func (w *ClientWrapper) AsInt() (int64, Object)
- func (w *ClientWrapper) AsList() ([]Object, Object)
- func (w *ClientWrapper) AsString() (string, Object)
- func (w *ClientWrapper) CoerceFloat() (float64, Object)
- func (w *ClientWrapper) CoerceInt() (int64, Object)
- func (w *ClientWrapper) CoerceString() (string, Object)
- func (w *ClientWrapper) Inspect() string
- func (w *ClientWrapper) Type() ObjectType
- type Continue
- func (c *Continue) AsBool() (bool, Object)
- func (c *Continue) AsDict() (map[string]Object, Object)
- func (c *Continue) AsFloat() (float64, Object)
- func (c *Continue) AsInt() (int64, Object)
- func (c *Continue) AsList() ([]Object, Object)
- func (c *Continue) AsString() (string, Object)
- func (c *Continue) CoerceFloat() (float64, Object)
- func (c *Continue) CoerceInt() (int64, Object)
- func (c *Continue) CoerceString() (string, Object)
- func (c *Continue) Inspect() string
- func (c *Continue) Type() ObjectType
- type Dict
- func (d *Dict) AsBool() (bool, Object)
- func (d *Dict) AsDict() (map[string]Object, Object)
- func (d *Dict) AsFloat() (float64, Object)
- func (d *Dict) AsInt() (int64, Object)
- func (d *Dict) AsList() ([]Object, Object)
- func (d *Dict) AsString() (string, Object)
- func (d *Dict) CoerceFloat() (float64, Object)
- func (d *Dict) CoerceInt() (int64, Object)
- func (d *Dict) CoerceString() (string, Object)
- func (d *Dict) DeleteByString(name string) bool
- func (d *Dict) GetByString(name string) (DictPair, bool)
- func (d *Dict) HasByString(name string) bool
- func (d *Dict) Inspect() string
- func (d *Dict) SetByString(name string, value Object)
- func (d *Dict) Type() ObjectType
- type DictItems
- func (di *DictItems) AsBool() (bool, Object)
- func (di *DictItems) AsDict() (map[string]Object, Object)
- func (di *DictItems) AsFloat() (float64, Object)
- func (di *DictItems) AsInt() (int64, Object)
- func (di *DictItems) AsList() ([]Object, Object)
- func (di *DictItems) AsString() (string, Object)
- func (di *DictItems) CoerceFloat() (float64, Object)
- func (di *DictItems) CoerceInt() (int64, Object)
- func (di *DictItems) CoerceString() (string, Object)
- func (di *DictItems) CreateIterator() *Iterator
- func (di *DictItems) Inspect() string
- func (di *DictItems) Type() ObjectType
- type DictKeys
- func (dk *DictKeys) AsBool() (bool, Object)
- func (dk *DictKeys) AsDict() (map[string]Object, Object)
- func (dk *DictKeys) AsFloat() (float64, Object)
- func (dk *DictKeys) AsInt() (int64, Object)
- func (dk *DictKeys) AsList() ([]Object, Object)
- func (dk *DictKeys) AsString() (string, Object)
- func (dk *DictKeys) CoerceFloat() (float64, Object)
- func (dk *DictKeys) CoerceInt() (int64, Object)
- func (dk *DictKeys) CoerceString() (string, Object)
- func (dk *DictKeys) CreateIterator() *Iterator
- func (dk *DictKeys) Inspect() string
- func (dk *DictKeys) Type() ObjectType
- type DictPair
- type DictValues
- func (dv *DictValues) AsBool() (bool, Object)
- func (dv *DictValues) AsDict() (map[string]Object, Object)
- func (dv *DictValues) AsFloat() (float64, Object)
- func (dv *DictValues) AsInt() (int64, Object)
- func (dv *DictValues) AsList() ([]Object, Object)
- func (dv *DictValues) AsString() (string, Object)
- func (dv *DictValues) CoerceFloat() (float64, Object)
- func (dv *DictValues) CoerceInt() (int64, Object)
- func (dv *DictValues) CoerceString() (string, Object)
- func (dv *DictValues) CreateIterator() *Iterator
- func (dv *DictValues) Inspect() string
- func (dv *DictValues) Type() ObjectType
- type Environment
- func AcquireCallEnvironment(outer *Environment, slotIndex map[string]int, slotNames []string) *Environment
- func NewEnclosedEnvironment(outer *Environment) *Environment
- func NewEnclosedEnvironmentWithSlots(outer *Environment, slotIndex map[string]int, slotNames []string) *Environment
- func NewEnvironment() *Environment
- func (e *Environment) CopyCallableBindingsTo(target *Environment)
- func (e *Environment) Delete(name string)
- func (e *Environment) EnableOutputCapture()
- func (e *Environment) ExtendSlots(slotIndex map[string]int, slotNames []string)
- func (e *Environment) Get(name string) (Object, bool)
- func (e *Environment) GetAvailableLibrariesCallback() func() []LibraryInfo
- func (e *Environment) GetCachedSlot(idx int, name string) (Object, bool)
- func (e *Environment) GetCurrentModule() string
- func (e *Environment) GetGlobal() *Environment
- func (e *Environment) GetImportCallback() func(string) error
- func (e *Environment) GetOutput() string
- func (e *Environment) GetReader() io.Reader
- func (e *Environment) GetSlotByIndex(idx int) (Object, bool)
- func (e *Environment) GetSlotIndex(name string) (int, bool)
- func (e *Environment) GetStore() map[string]Object
- func (e *Environment) GetWriter() io.Writer
- func (e *Environment) HasSlots() bool
- func (e *Environment) IsGlobal(name string) bool
- func (e *Environment) IsImportedBinding(name string) bool
- func (e *Environment) IsNonlocal(name string) bool
- func (e *Environment) MarkGlobal(name string)
- func (e *Environment) MarkImportedBinding(name string)
- func (e *Environment) MarkNonlocal(name string)
- func (e *Environment) ResetStore(keep map[string]bool)
- func (e *Environment) Set(name string, val Object) Object
- func (e *Environment) SetAvailableLibrariesCallback(fn func() []LibraryInfo)
- func (e *Environment) SetCachedSlot(idx int, name string, val Object) bool
- func (e *Environment) SetCurrentModule(module string)
- func (e *Environment) SetGlobal(name string, val Object) Object
- func (e *Environment) SetImportCallback(fn func(string) error)
- func (e *Environment) SetInParent(name string, val Object) bool
- func (e *Environment) SetInputReader(r io.Reader)
- func (e *Environment) SetOutputWriter(w io.Writer)
- func (e *Environment) SetSlotByIndex(idx int, val Object) bool
- func (e *Environment) SetupSlots(slotIndex map[string]int, slotNames []string)
- func (e *Environment) SnapshotCallables() *CallableSnapshot
- type Error
- func (e *Error) AsBool() (bool, Object)
- func (e *Error) AsDict() (map[string]Object, Object)
- func (e *Error) AsFloat() (float64, Object)
- func (e *Error) AsInt() (int64, Object)
- func (e *Error) AsList() ([]Object, Object)
- func (e *Error) AsString() (string, Object)
- func (e *Error) CoerceFloat() (float64, Object)
- func (e *Error) CoerceInt() (int64, Object)
- func (e *Error) CoerceString() (string, Object)
- func (e *Error) Inspect() string
- func (e *Error) Type() ObjectType
- type Exception
- func (ex *Exception) AsBool() (bool, Object)
- func (ex *Exception) AsDict() (map[string]Object, Object)
- func (ex *Exception) AsFloat() (float64, Object)
- func (ex *Exception) AsInt() (int64, Object)
- func (ex *Exception) AsList() ([]Object, Object)
- func (ex *Exception) AsString() (string, Object)
- func (ex *Exception) CoerceFloat() (float64, Object)
- func (ex *Exception) CoerceInt() (int64, Object)
- func (ex *Exception) CoerceString() (string, Object)
- func (ex *Exception) GetExitCode() int
- func (ex *Exception) Inspect() string
- func (ex *Exception) IsPermissionError() bool
- func (ex *Exception) IsSystemExit() bool
- func (ex *Exception) Type() ObjectType
- type Float
- func (f *Float) AsBool() (bool, Object)
- func (f *Float) AsDict() (map[string]Object, Object)
- func (f *Float) AsFloat() (float64, Object)
- func (f *Float) AsInt() (int64, Object)
- func (f *Float) AsList() ([]Object, Object)
- func (f *Float) AsString() (string, Object)
- func (f *Float) CoerceFloat() (float64, Object)
- func (f *Float) CoerceInt() (int64, Object)
- func (f *Float) CoerceString() (string, Object)
- func (f *Float) FloatValue() float64
- func (f *Float) Inspect() string
- func (f *Float) Type() ObjectType
- type FloatArray
- func (fa *FloatArray) AsBool() (bool, Object)
- func (fa *FloatArray) AsDict() (map[string]Object, Object)
- func (fa *FloatArray) AsFloat() (float64, Object)
- func (fa *FloatArray) AsInt() (int64, Object)
- func (fa *FloatArray) AsList() ([]Object, Object)
- func (fa *FloatArray) AsString() (string, Object)
- func (fa *FloatArray) CoerceFloat() (float64, Object)
- func (fa *FloatArray) CoerceInt() (int64, Object)
- func (fa *FloatArray) CoerceString() (string, Object)
- func (fa *FloatArray) Cols() int
- func (fa *FloatArray) FloatArrayData() ([]float64, []int, bool)
- func (fa *FloatArray) Inspect() string
- func (fa *FloatArray) Is2D() bool
- func (fa *FloatArray) PrettyPrint() string
- func (fa *FloatArray) Row(i int) []float64
- func (fa *FloatArray) Rows() int
- func (fa *FloatArray) ToList() *List
- func (fa *FloatArray) Type() ObjectType
- type Function
- func (f *Function) AsBool() (bool, Object)
- func (f *Function) AsDict() (map[string]Object, Object)
- func (f *Function) AsFloat() (float64, Object)
- func (f *Function) AsInt() (int64, Object)
- func (f *Function) AsList() ([]Object, Object)
- func (f *Function) AsString() (string, Object)
- func (f *Function) CoerceFloat() (float64, Object)
- func (f *Function) CoerceInt() (int64, Object)
- func (f *Function) CoerceString() (string, Object)
- func (f *Function) Inspect() string
- func (f *Function) Type() ObjectType
- type FunctionBuilder
- type FunctionSignature
- type Instance
- func (i *Instance) AsBool() (bool, Object)
- func (i *Instance) AsDict() (map[string]Object, Object)
- func (i *Instance) AsFloat() (float64, Object)
- func (i *Instance) AsInt() (int64, Object)
- func (i *Instance) AsList() ([]Object, Object)
- func (i *Instance) AsString() (string, Object)
- func (i *Instance) CoerceFloat() (float64, Object)
- func (i *Instance) CoerceInt() (int64, Object)
- func (i *Instance) CoerceString() (string, Object)
- func (i *Instance) GetBoundMethod(name string, method Object) *BoundMethod
- func (i *Instance) Inspect() string
- func (i *Instance) InvalidateBoundMethod(name string)
- func (i *Instance) Type() ObjectType
- type Integer
- func (i *Integer) AsBool() (bool, Object)
- func (i *Integer) AsDict() (map[string]Object, Object)
- func (i *Integer) AsFloat() (float64, Object)
- func (i *Integer) AsInt() (int64, Object)
- func (i *Integer) AsList() ([]Object, Object)
- func (i *Integer) AsString() (string, Object)
- func (i *Integer) CoerceFloat() (float64, Object)
- func (i *Integer) CoerceInt() (int64, Object)
- func (i *Integer) CoerceString() (string, Object)
- func (i *Integer) Inspect() string
- func (i *Integer) IntValue() int64
- func (i *Integer) Type() ObjectType
- type Iterator
- func (it *Iterator) AsBool() (bool, Object)
- func (it *Iterator) AsDict() (map[string]Object, Object)
- func (it *Iterator) AsFloat() (float64, Object)
- func (it *Iterator) AsInt() (int64, Object)
- func (it *Iterator) AsList() ([]Object, Object)
- func (it *Iterator) AsString() (string, Object)
- func (it *Iterator) CoerceFloat() (float64, Object)
- func (it *Iterator) CoerceInt() (int64, Object)
- func (it *Iterator) CoerceString() (string, Object)
- func (it *Iterator) Inspect() string
- func (it *Iterator) Next() (Object, bool)
- func (it *Iterator) Type() ObjectType
- type Kwargs
- func (k Kwargs) Get(key string) Object
- func (k Kwargs) GetBool(name string, defaultValue bool) (bool, Object)
- func (k Kwargs) GetFloat(name string, defaultValue float64) (float64, Object)
- func (k Kwargs) GetInt(name string, defaultValue int64) (int64, Object)
- func (k Kwargs) GetList(name string, defaultValue []Object) ([]Object, Object)
- func (k Kwargs) GetString(name string, defaultValue string) (string, Object)
- func (k Kwargs) Has(key string) bool
- func (k Kwargs) Keys() []string
- func (k Kwargs) Len() int
- func (k Kwargs) MustGetBool(name string, defaultValue bool) bool
- func (k Kwargs) MustGetFloat(name string, defaultValue float64) float64
- func (k Kwargs) MustGetInt(name string, defaultValue int64) int64
- func (k Kwargs) MustGetList(name string, defaultValue []Object) []Object
- func (k Kwargs) MustGetString(name string, defaultValue string) string
- type LambdaFunction
- func (lf *LambdaFunction) AsBool() (bool, Object)
- func (lf *LambdaFunction) AsDict() (map[string]Object, Object)
- func (lf *LambdaFunction) AsFloat() (float64, Object)
- func (lf *LambdaFunction) AsInt() (int64, Object)
- func (lf *LambdaFunction) AsList() ([]Object, Object)
- func (lf *LambdaFunction) AsString() (string, Object)
- func (lf *LambdaFunction) CoerceFloat() (float64, Object)
- func (lf *LambdaFunction) CoerceInt() (int64, Object)
- func (lf *LambdaFunction) CoerceString() (string, Object)
- func (lf *LambdaFunction) Inspect() string
- func (lf *LambdaFunction) Type() ObjectType
- type Library
- func (l *Library) AsBool() (bool, Object)
- func (l *Library) AsDict() (map[string]Object, Object)
- func (l *Library) AsFloat() (float64, Object)
- func (l *Library) AsInt() (int64, Object)
- func (l *Library) AsList() ([]Object, Object)
- func (l *Library) AsString() (string, Object)
- func (l *Library) CachedDict() *Dict
- func (l *Library) CoerceFloat() (float64, Object)
- func (l *Library) CoerceInt() (int64, Object)
- func (l *Library) CoerceString() (string, Object)
- func (l *Library) Constants() map[string]Object
- func (l *Library) Description() string
- func (l *Library) Functions() map[string]*Builtin
- func (l *Library) GetDict() *Dict
- func (l *Library) Inspect() string
- func (l *Library) InstanceData() any
- func (l *Library) Instantiate(instanceData any) *Library
- func (l *Library) Name() string
- func (l *Library) Type() ObjectType
- type LibraryBuilder
- func (b *LibraryBuilder) Alias(alias, originalName string) *LibraryBuilder
- func (b *LibraryBuilder) Build() *Library
- func (b *LibraryBuilder) Clear() *LibraryBuilder
- func (b *LibraryBuilder) Constant(name string, value interface{}) *LibraryBuilder
- func (b *LibraryBuilder) ConstantCount() int
- func (b *LibraryBuilder) Description(desc string) *LibraryBuilder
- func (b *LibraryBuilder) Function(name string, fn interface{}) *LibraryBuilder
- func (b *LibraryBuilder) FunctionCount() int
- func (b *LibraryBuilder) FunctionFromVariadic(name string, fn interface{}) *LibraryBuilder
- func (b *LibraryBuilder) FunctionFromVariadicWithHelp(name string, fn interface{}, helpText string) *LibraryBuilder
- func (b *LibraryBuilder) FunctionWithHelp(name string, fn interface{}, helpText string) *LibraryBuilder
- func (b *LibraryBuilder) GetConstantNames() []string
- func (b *LibraryBuilder) GetDescription() string
- func (b *LibraryBuilder) GetFunctionNames() []string
- func (b *LibraryBuilder) HasConstant(name string) bool
- func (b *LibraryBuilder) HasFunction(name string) bool
- func (b *LibraryBuilder) Merge(other *LibraryBuilder) *LibraryBuilder
- func (b *LibraryBuilder) RemoveConstant(name string) *LibraryBuilder
- func (b *LibraryBuilder) RemoveFunction(name string) *LibraryBuilder
- func (b *LibraryBuilder) String() string
- func (b *LibraryBuilder) SubLibrary(name string, lib *Library) *LibraryBuilder
- type LibraryInfo
- type LibraryRegistrar
- type List
- func (l *List) AsBool() (bool, Object)
- func (l *List) AsDict() (map[string]Object, Object)
- func (l *List) AsFloat() (float64, Object)
- func (l *List) AsInt() (int64, Object)
- func (l *List) AsList() ([]Object, Object)
- func (l *List) AsString() (string, Object)
- func (l *List) CoerceFloat() (float64, Object)
- func (l *List) CoerceInt() (int64, Object)
- func (l *List) CoerceString() (string, Object)
- func (l *List) Inspect() string
- func (l *List) Type() ObjectType
- type Null
- func (n *Null) AsBool() (bool, Object)
- func (n *Null) AsDict() (map[string]Object, Object)
- func (n *Null) AsFloat() (float64, Object)
- func (n *Null) AsInt() (int64, Object)
- func (n *Null) AsList() ([]Object, Object)
- func (n *Null) AsString() (string, Object)
- func (n *Null) CoerceFloat() (float64, Object)
- func (n *Null) CoerceInt() (int64, Object)
- func (n *Null) CoerceString() (string, Object)
- func (n *Null) Inspect() string
- func (n *Null) Type() ObjectType
- type Object
- type ObjectType
- type Property
- func (p *Property) AsBool() (bool, Object)
- func (p *Property) AsDict() (map[string]Object, Object)
- func (p *Property) AsFloat() (float64, Object)
- func (p *Property) AsInt() (int64, Object)
- func (p *Property) AsList() ([]Object, Object)
- func (p *Property) AsString() (string, Object)
- func (p *Property) CoerceFloat() (float64, Object)
- func (p *Property) CoerceInt() (int64, Object)
- func (p *Property) CoerceString() (string, Object)
- func (p *Property) Inspect() string
- func (p *Property) Type() ObjectType
- type ReturnValue
- func (rv *ReturnValue) AsBool() (bool, Object)
- func (rv *ReturnValue) AsDict() (map[string]Object, Object)
- func (rv *ReturnValue) AsFloat() (float64, Object)
- func (rv *ReturnValue) AsInt() (int64, Object)
- func (rv *ReturnValue) AsList() ([]Object, Object)
- func (rv *ReturnValue) AsString() (string, Object)
- func (rv *ReturnValue) CoerceFloat() (float64, Object)
- func (rv *ReturnValue) CoerceInt() (int64, Object)
- func (rv *ReturnValue) CoerceString() (string, Object)
- func (rv *ReturnValue) Inspect() string
- func (rv *ReturnValue) Type() ObjectType
- type Set
- func (s *Set) AddKeyed(key string, obj Object)
- func (s *Set) AsBool() (bool, Object)
- func (s *Set) AsDict() (map[string]Object, Object)
- func (s *Set) AsFloat() (float64, Object)
- func (s *Set) AsInt() (int64, Object)
- func (s *Set) AsList() ([]Object, Object)
- func (s *Set) AsString() (string, Object)
- func (s *Set) CoerceFloat() (float64, Object)
- func (s *Set) CoerceInt() (int64, Object)
- func (s *Set) CoerceString() (string, Object)
- func (s *Set) ContainsKeyed(key string) bool
- func (s *Set) Copy() *Set
- func (s *Set) CreateIterator() *Iterator
- func (s *Set) Difference(other *Set) *Set
- func (s *Set) Inspect() string
- func (s *Set) Intersection(other *Set) *Set
- func (s *Set) IsSubset(other *Set) bool
- func (s *Set) IsSuperset(other *Set) bool
- func (s *Set) SymmetricDifference(other *Set) *Set
- func (s *Set) Type() ObjectType
- func (s *Set) Union(other *Set) *Set
- type Slice
- func (s *Slice) AsBool() (bool, Object)
- func (s *Slice) AsDict() (map[string]Object, Object)
- func (s *Slice) AsFloat() (float64, Object)
- func (s *Slice) AsInt() (int64, Object)
- func (s *Slice) AsList() ([]Object, Object)
- func (s *Slice) AsString() (string, Object)
- func (s *Slice) CoerceFloat() (float64, Object)
- func (s *Slice) CoerceInt() (int64, Object)
- func (s *Slice) CoerceString() (string, Object)
- func (s *Slice) Inspect() string
- func (s *Slice) Type() ObjectType
- type StaticMethod
- func (s *StaticMethod) AsBool() (bool, Object)
- func (s *StaticMethod) AsDict() (map[string]Object, Object)
- func (s *StaticMethod) AsFloat() (float64, Object)
- func (s *StaticMethod) AsInt() (int64, Object)
- func (s *StaticMethod) AsList() ([]Object, Object)
- func (s *StaticMethod) AsString() (string, Object)
- func (s *StaticMethod) CoerceFloat() (float64, Object)
- func (s *StaticMethod) CoerceInt() (int64, Object)
- func (s *StaticMethod) CoerceString() (string, Object)
- func (s *StaticMethod) Inspect() string
- func (s *StaticMethod) Type() ObjectType
- type String
- func (s *String) AsBool() (bool, Object)
- func (s *String) AsDict() (map[string]Object, Object)
- func (s *String) AsFloat() (float64, Object)
- func (s *String) AsInt() (int64, Object)
- func (s *String) AsList() ([]Object, Object)
- func (s *String) AsString() (string, Object)
- func (s *String) CoerceFloat() (float64, Object)
- func (s *String) CoerceInt() (int64, Object)
- func (s *String) CoerceString() (string, Object)
- func (s *String) Inspect() string
- func (s *String) StringValue() string
- func (s *String) Type() ObjectType
- type Super
- func (s *Super) AsBool() (bool, Object)
- func (s *Super) AsDict() (map[string]Object, Object)
- func (s *Super) AsFloat() (float64, Object)
- func (s *Super) AsInt() (int64, Object)
- func (s *Super) AsList() ([]Object, Object)
- func (s *Super) AsString() (string, Object)
- func (s *Super) CoerceFloat() (float64, Object)
- func (s *Super) CoerceInt() (int64, Object)
- func (s *Super) CoerceString() (string, Object)
- func (s *Super) Inspect() string
- func (s *Super) Type() ObjectType
- type Tuple
- func (t *Tuple) AsBool() (bool, Object)
- func (t *Tuple) AsDict() (map[string]Object, Object)
- func (t *Tuple) AsFloat() (float64, Object)
- func (t *Tuple) AsInt() (int64, Object)
- func (t *Tuple) AsList() ([]Object, Object)
- func (t *Tuple) AsString() (string, Object)
- func (t *Tuple) CoerceFloat() (float64, Object)
- func (t *Tuple) CoerceInt() (int64, Object)
- func (t *Tuple) CoerceString() (string, Object)
- func (t *Tuple) Inspect() string
- func (t *Tuple) Type() ObjectType
Constants ¶
const ( // Type conversion error messages (exported for use by external packages) ErrMustBeString = "must be a string" ErrMustBeInteger = "must be an integer" ErrMustBeNumber = "must be a number" ErrMustBeBoolean = "must be a boolean" ErrMustBeList = "must be a list" ErrMustBeDict = "must be a dict" ErrMustBeIterable = "must be iterable" )
Small integer cache for common values (-5 to 10000) This follows Python's approach and eliminates allocations for loop counters Extended range to 10000 for better loop performance
const ( ExceptionTypeSystemExit = "SystemExit" ExceptionTypePermissionError = "PermissionError" ExceptionTypeException = "Exception" ExceptionTypeValueError = "ValueError" ExceptionTypeTypeError = "TypeError" ExceptionTypeNameError = "NameError" ExceptionTypeImportError = "ImportError" ExceptionTypeStopIteration = "StopIteration" ExceptionTypeRuntimeError = "RuntimeError" ExceptionTypeZeroDivisionError = "ZeroDivisionError" ExceptionTypeIndexError = "IndexError" ExceptionTypeKeyError = "KeyError" ExceptionTypeAttributeError = "AttributeError" ExceptionTypeOSError = "OSError" ExceptionTypeGeneric = "" // Default for legacy compatibility )
Exception type constants
Variables ¶
var ( BREAK = &Break{} CONTINUE = &Continue{} )
Break and Continue singletons (like NULL, TRUE, FALSE)
Functions ¶
func AsError ¶
AsError returns the error message from an Object, or empty string if not an error. This is a shared helper for extracting error messages from Objects.
func ClearGCReleaseHook ¶ added in v0.10.0
ClearGCReleaseHook removes a release hook previously installed with SetGCReleaseHook. It is safe to call when no hook is installed.
func DictKey ¶
DictKey returns a canonical string key for use in Dict and Set maps. Matches Python 3 semantics where:
- int(1), float(1.0), and True all map to the same key
- str("1") maps to a different key
- None maps to its own unique key
func DictStringKey ¶ added in v0.7.1
func GetFloatArrayData ¶ added in v0.6.3
func GetFloatMatrix ¶ added in v0.6.4
func InstanceDataFromContext ¶
InstanceDataFromContext retrieves instance data from the context Returns nil if no instance data is present
func IsFloatArray ¶ added in v0.6.3
func IsHashable ¶ added in v0.3.2
IsHashable reports whether obj can be used as a set element or dict key. Matches Python semantics: int, float, bool, string, None, and tuples of hashable elements are hashable; lists, dicts, sets, and instances are not unless the instance defines __hash__.
func ReleaseCallEnvironment ¶ added in v0.7.1
func ReleaseCallEnvironment(env *Environment)
ReleaseCallEnvironment clears and returns a pooled call environment back to the pool. Non-pooled environments are ignored.
func SetGCReleaseHook ¶ added in v0.10.0
SetGCReleaseHook installs hook as a best-effort callback for when target is released by Go's garbage collector.
The target must be a non-nil pointer. The hook must not retain target, either directly or through captured values, or the object will not become unreachable. Finalizers are not prompt and may never run before process exit, so callers should use explicit cleanup for resources that need deterministic release.
func ValidateTransferable ¶ added in v0.5.2
ValidateTransferable checks whether obj contains only types that can be safely passed to a background task. Transferable types are scalars (Null, Boolean, Integer, Float, String) and recursively transferable containers (List, Dict, Set, Tuple). Instances, classes, functions, builtins, and other stateful objects are rejected. Circular references are also rejected.
Types ¶
type Boolean ¶
type Boolean struct {
// contains filtered or unexported fields
}
func NewBoolean ¶ added in v0.5.2
func (*Boolean) CoerceFloat ¶
func (*Boolean) CoerceString ¶
func (*Boolean) Type ¶
func (b *Boolean) Type() ObjectType
type BoundMethod ¶
type BoundMethod struct {
Instance Object // The instance (self)
Method Object // The method function
// contains filtered or unexported fields
}
BoundMethod represents a method bound to an instance When called, it automatically prepends self to the arguments
func (*BoundMethod) AsBool ¶
func (bm *BoundMethod) AsBool() (bool, Object)
func (*BoundMethod) AsFloat ¶
func (bm *BoundMethod) AsFloat() (float64, Object)
func (*BoundMethod) AsInt ¶
func (bm *BoundMethod) AsInt() (int64, Object)
func (*BoundMethod) AsList ¶
func (bm *BoundMethod) AsList() ([]Object, Object)
func (*BoundMethod) AsString ¶
func (bm *BoundMethod) AsString() (string, Object)
func (*BoundMethod) CoerceFloat ¶
func (bm *BoundMethod) CoerceFloat() (float64, Object)
func (*BoundMethod) CoerceInt ¶
func (bm *BoundMethod) CoerceInt() (int64, Object)
func (*BoundMethod) CoerceString ¶
func (bm *BoundMethod) CoerceString() (string, Object)
func (*BoundMethod) Inspect ¶
func (bm *BoundMethod) Inspect() string
func (*BoundMethod) SelfArgs ¶ added in v0.5.6
func (bm *BoundMethod) SelfArgs() []Object
func (*BoundMethod) Type ¶
func (bm *BoundMethod) Type() ObjectType
type Break ¶
type Break struct{}
func (*Break) CoerceFloat ¶
func (*Break) CoerceString ¶
func (*Break) Type ¶
func (b *Break) Type() ObjectType
type Builtin ¶
type Builtin struct {
Fn BuiltinFunction
HelpText string // Optional help documentation for this builtin
Attributes map[string]Object // Optional attributes for this builtin
}
func (*Builtin) CoerceFloat ¶
func (*Builtin) CoerceString ¶
func (*Builtin) Type ¶
func (b *Builtin) Type() ObjectType
type BuiltinFunction ¶
BuiltinFunction is the signature for all builtin functions - ctx: Context with environment and runtime information - kwargs: Keyword arguments passed to the function (wrapped with helper methods) - args: Positional arguments passed to the function
type CallableSnapshot ¶ added in v0.6.3
type CallableSnapshot struct {
// contains filtered or unexported fields
}
CallableSnapshot holds a snapshot of callable bindings safe to pass across goroutine boundaries. Use ApplySnapshot to write them into a new Environment.
func (*CallableSnapshot) ApplySnapshot ¶ added in v0.6.3
func (s *CallableSnapshot) ApplySnapshot(target *Environment)
ApplySnapshot writes the snapshot's bindings into target, rebound to target so closures resolve correctly. Dicts are deep-copied so concurrent tasks don't race when mutating intermediate dicts.
type Class ¶
type Class struct {
Name string
BaseClass *Class // optional parent class for inheritance
Methods map[string]Object
Env *Environment
// contains filtered or unexported fields
}
func (*Class) CoerceFloat ¶
func (*Class) CoerceString ¶
func (*Class) InvalidateLookupCache ¶ added in v0.5.6
func (c *Class) InvalidateLookupCache()
func (*Class) LookupMember ¶ added in v0.5.6
func (*Class) Type ¶
func (c *Class) Type() ObjectType
type ClassBuilder ¶
type ClassBuilder struct {
// contains filtered or unexported fields
}
ClassBuilder provides a fluent API for creating scriptling classes. It allows registering typed Go methods that are automatically wrapped to handle conversion between Go types and scriptling Objects.
Two styles are supported:
1. *Instance methods — manually manage Fields:
cb := NewClassBuilder("Person")
cb.Method("__init__", func(self *Instance, name string) {
self.Fields["name"] = NewString(name)
})
cb.Method("greet", func(self *Instance) string {
return self.Fields["name"].(*String).StringValue()
})
2. Typed receiver methods — Go struct is auto-managed:
type Config struct { values map[string]any }
cb := NewClassBuilder("Config")
cb.Constructor(func(name string) *Config {
return &Config{values: map[string]any{"name": name}}
})
cb.Method("get", func(self *Config, key string) any {
return self.values[key]
})
When Constructor is used, the returned Go struct is automatically wrapped in a ClientWrapper and stored on the Instance. Methods whose first parameter matches the constructor's return type receive the unwrapped struct directly.
func NewClassBuilder ¶
func NewClassBuilder(name string) *ClassBuilder
NewClassBuilder creates a new ClassBuilder with the given class name.
func (*ClassBuilder) BaseClass ¶
func (cb *ClassBuilder) BaseClass(base *Class) *ClassBuilder
BaseClass sets the base class for inheritance.
func (*ClassBuilder) Build ¶
func (cb *ClassBuilder) Build() *Class
Build creates and returns the Class from this builder. If a Constructor was registered, an __init__ method is auto-generated that calls the constructor and stores the result as a ClientWrapper.
func (*ClassBuilder) Constructor ¶ added in v0.10.0
func (cb *ClassBuilder) Constructor(fn interface{}) *ClassBuilder
Constructor registers a constructor function for typed receiver classes. The function must return a pointer type (e.g., *Config) which becomes the receiver type for subsequent Method calls. The returned struct is automatically wrapped in a ClientWrapper and stored on the Instance.
Example:
type Config struct { values map[string]any }
cb := NewClassBuilder("Config")
cb.Constructor(func(name string) *Config {
return &Config{values: map[string]any{"name": name}}
})
cb.Method("get", func(self *Config, key string) any {
return self.values[key]
})
func (*ClassBuilder) Environment ¶
func (cb *ClassBuilder) Environment(env *Environment) *ClassBuilder
Environment sets the environment for the class. This is optional and usually not needed.
func (*ClassBuilder) Method ¶
func (cb *ClassBuilder) Method(name string, fn interface{}) *ClassBuilder
Method registers a typed Go method with the class. The first parameter is the receiver: either *Instance (manual Fields) or the typed pointer set by Constructor (e.g., *Config).
Example with *Instance:
cb.Method("greet", func(self *Instance, name string) string {
return "Hello, " + name
})
Example with typed receiver:
cb.Method("get", func(self *Config, key string) any {
return self.values[key]
})
func (*ClassBuilder) MethodWithHelp ¶
func (cb *ClassBuilder) MethodWithHelp(name string, fn interface{}, helpText string) *ClassBuilder
MethodWithHelp registers a method with help text. Help text is displayed when users call help() on the method.
func (*ClassBuilder) Property ¶ added in v0.2.0
func (cb *ClassBuilder) Property(name string, fn interface{}) *ClassBuilder
Property registers a getter function as a @property on the class. The getter receives self as its only argument.
Example:
cb.Property("area", func(self *Instance) float64 {
r, _ := self.Fields["radius"].AsFloat()
return math.Pi * r * r
})
func (*ClassBuilder) PropertyWithSetter ¶ added in v0.2.0
func (cb *ClassBuilder) PropertyWithSetter(name string, getter interface{}, setter interface{}) *ClassBuilder
PropertyWithSetter registers a getter and setter as a @property on the class. The getter receives self only; the setter receives self and the new value.
Example:
cb.PropertyWithSetter("radius",
func(self *Instance) float64 { r, _ := self.Fields["r"].AsFloat(); return r },
func(self *Instance, v float64) { self.Fields["r"] = NewFloat(v) },
)
func (*ClassBuilder) StaticMethod ¶ added in v0.2.0
func (cb *ClassBuilder) StaticMethod(name string, fn interface{}) *ClassBuilder
StaticMethod registers a function as a @staticmethod on the class. The function does NOT receive self — do not include *Instance as the first parameter.
Example:
cb.StaticMethod("from_degrees", func(deg float64) float64 {
return deg * math.Pi / 180
})
type ClassMethod ¶ added in v0.2.0
type ClassMethod struct {
Fn Object
}
ClassMethod wraps a function for use with @classmethod. When called, the class is passed as the first argument instead of self.
func (*ClassMethod) AsBool ¶ added in v0.2.0
func (c *ClassMethod) AsBool() (bool, Object)
func (*ClassMethod) AsDict ¶ added in v0.2.0
func (c *ClassMethod) AsDict() (map[string]Object, Object)
func (*ClassMethod) AsFloat ¶ added in v0.2.0
func (c *ClassMethod) AsFloat() (float64, Object)
func (*ClassMethod) AsInt ¶ added in v0.2.0
func (c *ClassMethod) AsInt() (int64, Object)
func (*ClassMethod) AsList ¶ added in v0.2.0
func (c *ClassMethod) AsList() ([]Object, Object)
func (*ClassMethod) AsString ¶ added in v0.2.0
func (c *ClassMethod) AsString() (string, Object)
func (*ClassMethod) CoerceFloat ¶ added in v0.2.0
func (c *ClassMethod) CoerceFloat() (float64, Object)
func (*ClassMethod) CoerceInt ¶ added in v0.2.0
func (c *ClassMethod) CoerceInt() (int64, Object)
func (*ClassMethod) CoerceString ¶ added in v0.2.0
func (c *ClassMethod) CoerceString() (string, Object)
func (*ClassMethod) Inspect ¶ added in v0.2.0
func (c *ClassMethod) Inspect() string
func (*ClassMethod) Type ¶ added in v0.2.0
func (c *ClassMethod) Type() ObjectType
type ClientWrapper ¶
type ClientWrapper struct {
// TypeName is the display name used in Inspect() (e.g., "OpenAIClient", "MCPClient")
TypeName string
// Client is the underlying Go client pointer (opaque to scriptling)
Client any
}
ClientWrapper is a generic wrapper for storing Go client pointers in object.Instance fields. The underlying client is stored as an opaque pointer and accessed via type assertion.
Example usage:
type MyClientWrapper struct {
instance *MyClientInstance
}
func (w *MyClientWrapper) Type() ObjectType { return INSTANCE_OBJ }
func (w *MyClientWrapper) Inspect() string { return "<MyClient>" }
// ... implement other Object methods ...
// Store in instance:
instance.Fields["_client"] = &MyClientWrapper{instance: &MyClientInstance{...}}
// Extract from instance:
wrapper, _ := instance.Fields["_client"].(*MyClientWrapper)
client := wrapper.instance
For convenience, use NewClientWrapper to create a wrapper with a custom type name.
func GetClientField ¶
func GetClientField(instance *Instance, fieldName string) (*ClientWrapper, bool)
GetClientField extracts a ClientWrapper from an object.Instance field. Returns the wrapper and true if found, nil and false otherwise.
This is a convenience function for the common pattern of extracting a client wrapper from the "_client" field of an instance.
func (*ClientWrapper) AsBool ¶
func (w *ClientWrapper) AsBool() (bool, Object)
AsBool returns true - clients are truthy
func (*ClientWrapper) AsDict ¶
func (w *ClientWrapper) AsDict() (map[string]Object, Object)
AsDict returns an error - clients cannot be converted to dict
func (*ClientWrapper) AsFloat ¶
func (w *ClientWrapper) AsFloat() (float64, Object)
AsFloat returns an error - clients cannot be converted to float
func (*ClientWrapper) AsInt ¶
func (w *ClientWrapper) AsInt() (int64, Object)
AsInt returns an error - clients cannot be converted to int
func (*ClientWrapper) AsList ¶
func (w *ClientWrapper) AsList() ([]Object, Object)
AsList returns an error - clients cannot be converted to list
func (*ClientWrapper) AsString ¶
func (w *ClientWrapper) AsString() (string, Object)
AsString returns the inspect representation
func (*ClientWrapper) CoerceFloat ¶
func (w *ClientWrapper) CoerceFloat() (float64, Object)
func (*ClientWrapper) CoerceInt ¶
func (w *ClientWrapper) CoerceInt() (int64, Object)
func (*ClientWrapper) CoerceString ¶
func (w *ClientWrapper) CoerceString() (string, Object)
func (*ClientWrapper) Inspect ¶
func (w *ClientWrapper) Inspect() string
Inspect returns a string representation of the client
func (*ClientWrapper) Type ¶
func (w *ClientWrapper) Type() ObjectType
Type returns INSTANCE_OBJ as this wrapper represents an instance
type Continue ¶
type Continue struct{}
func (*Continue) CoerceFloat ¶
func (*Continue) CoerceString ¶
func (*Continue) Type ¶
func (c *Continue) Type() ObjectType
type Dict ¶
func NewStringDict ¶
NewStringDict creates a Dict from string key-value pairs. Usage: NewStringDict(map[string]Object{"key": value, ...})
func (*Dict) CoerceFloat ¶
func (*Dict) CoerceString ¶
func (*Dict) DeleteByString ¶
DeleteByString deletes a string key from the dict. Returns true if key existed.
func (*Dict) GetByString ¶
GetByString retrieves a pair using a string key (convenience for attribute-style access).
func (*Dict) HasByString ¶
HasByString checks if a string key exists in the dict.
func (*Dict) SetByString ¶
SetByString sets a pair using a string key (convenience for attribute-style access).
func (*Dict) Type ¶
func (d *Dict) Type() ObjectType
type DictItems ¶
type DictItems struct {
Dict *Dict
}
DictItems represents a view of a dictionary's items
func (*DictItems) CoerceFloat ¶
func (*DictItems) CoerceString ¶
func (*DictItems) CreateIterator ¶
func (*DictItems) Type ¶
func (di *DictItems) Type() ObjectType
type DictKeys ¶
type DictKeys struct {
Dict *Dict
}
DictKeys represents a view of a dictionary's keys
func (*DictKeys) CoerceFloat ¶
func (*DictKeys) CoerceString ¶
func (*DictKeys) CreateIterator ¶
CreateIterator returns an iterator for the keys
func (*DictKeys) Type ¶
func (dk *DictKeys) Type() ObjectType
type DictValues ¶
type DictValues struct {
Dict *Dict
}
DictValues represents a view of a dictionary's values
func (*DictValues) AsBool ¶
func (dv *DictValues) AsBool() (bool, Object)
func (*DictValues) AsFloat ¶
func (dv *DictValues) AsFloat() (float64, Object)
func (*DictValues) AsInt ¶
func (dv *DictValues) AsInt() (int64, Object)
func (*DictValues) AsList ¶
func (dv *DictValues) AsList() ([]Object, Object)
func (*DictValues) AsString ¶
func (dv *DictValues) AsString() (string, Object)
func (*DictValues) CoerceFloat ¶
func (dv *DictValues) CoerceFloat() (float64, Object)
func (*DictValues) CoerceInt ¶
func (dv *DictValues) CoerceInt() (int64, Object)
func (*DictValues) CoerceString ¶
func (dv *DictValues) CoerceString() (string, Object)
func (*DictValues) CreateIterator ¶
func (dv *DictValues) CreateIterator() *Iterator
func (*DictValues) Inspect ¶
func (dv *DictValues) Inspect() string
func (*DictValues) Type ¶
func (dv *DictValues) Type() ObjectType
type Environment ¶
type Environment struct {
// contains filtered or unexported fields
}
func AcquireCallEnvironment ¶ added in v0.7.1
func AcquireCallEnvironment(outer *Environment, slotIndex map[string]int, slotNames []string) *Environment
AcquireCallEnvironment returns a function-call environment, reusing a pooled frame for small slot counts when possible.
func NewEnclosedEnvironment ¶
func NewEnclosedEnvironment(outer *Environment) *Environment
func NewEnclosedEnvironmentWithSlots ¶ added in v0.5.6
func NewEnclosedEnvironmentWithSlots(outer *Environment, slotIndex map[string]int, slotNames []string) *Environment
func NewEnvironment ¶
func NewEnvironment() *Environment
func (*Environment) CopyCallableBindingsTo ¶ added in v0.5.5
func (e *Environment) CopyCallableBindingsTo(target *Environment)
CopyCallableBindingsTo copies safe bindings into target for background task use. Functions and lambdas are copied and rebound to target. Dicts are copied so imported modules remain available. Other globals are intentionally skipped so background tasks cannot share caller-owned mutable or native-backed state.
func (*Environment) Delete ¶
func (e *Environment) Delete(name string)
Delete removes a variable from this environment (not parent scopes)
func (*Environment) EnableOutputCapture ¶
func (e *Environment) EnableOutputCapture()
EnableOutputCapture enables output capture for this environment
func (*Environment) ExtendSlots ¶ added in v0.7.1
func (e *Environment) ExtendSlots(slotIndex map[string]int, slotNames []string)
ExtendSlots adds new variables to the existing slot layout. Variables already present keep their existing indices. New variables are appended.
func (*Environment) GetAvailableLibrariesCallback ¶
func (e *Environment) GetAvailableLibrariesCallback() func() []LibraryInfo
GetAvailableLibrariesCallback gets the available libraries callback from this environment or outer
func (*Environment) GetCachedSlot ¶ added in v0.7.1
func (e *Environment) GetCachedSlot(idx int, name string) (Object, bool)
GetCachedSlot returns the value at the given slot index after validating that the slot name matches. This prevents stale cached indices (from shared AST via the parse cache) from reading the wrong variable.
func (*Environment) GetCurrentModule ¶ added in v0.4.0
func (e *Environment) GetCurrentModule() string
GetCurrentModule gets the current module path from this environment or outer
func (*Environment) GetGlobal ¶
func (e *Environment) GetGlobal() *Environment
GetGlobal gets the global (outermost) environment
func (*Environment) GetImportCallback ¶
func (e *Environment) GetImportCallback() func(string) error
GetImportCallback gets the import callback from this environment or outer
func (*Environment) GetOutput ¶
func (e *Environment) GetOutput() string
GetOutput returns captured output and clears the buffer
func (*Environment) GetReader ¶
func (e *Environment) GetReader() io.Reader
GetReader returns the appropriate reader for input
func (*Environment) GetSlotByIndex ¶ added in v0.7.1
func (e *Environment) GetSlotByIndex(idx int) (Object, bool)
GetSlotByIndex returns the value at the given slot index. Returns (value, true) if the slot has a value, (nil, false) otherwise.
func (*Environment) GetSlotIndex ¶ added in v0.7.1
func (e *Environment) GetSlotIndex(name string) (int, bool)
GetSlotIndex returns the slot index for the given variable name in this environment's local scope only. Returns (index, true) if found, (0, false) if not a local slot.
func (*Environment) GetStore ¶
func (e *Environment) GetStore() map[string]Object
GetStore returns a copy of the environment's store (only local scope, not outer)
func (*Environment) GetWriter ¶
func (e *Environment) GetWriter() io.Writer
GetWriter returns the appropriate writer for output
func (*Environment) HasSlots ¶ added in v0.7.1
func (e *Environment) HasSlots() bool
HasSlots returns whether this environment has slot-based variable access configured.
func (*Environment) IsGlobal ¶
func (e *Environment) IsGlobal(name string) bool
IsGlobal checks if a variable is marked as global
func (*Environment) IsImportedBinding ¶ added in v0.6.0
func (e *Environment) IsImportedBinding(name string) bool
IsImportedBinding reports whether a local binding came from an import.
func (*Environment) IsNonlocal ¶
func (e *Environment) IsNonlocal(name string) bool
IsNonlocal checks if a variable is marked as nonlocal
func (*Environment) MarkGlobal ¶
func (e *Environment) MarkGlobal(name string)
MarkGlobal marks a variable name as global in this scope
func (*Environment) MarkImportedBinding ¶ added in v0.6.0
func (e *Environment) MarkImportedBinding(name string)
MarkImportedBinding marks a local binding as coming from an import.
func (*Environment) MarkNonlocal ¶
func (e *Environment) MarkNonlocal(name string)
MarkNonlocal marks a variable name as nonlocal in this scope
func (*Environment) ResetStore ¶ added in v0.2.7
func (e *Environment) ResetStore(keep map[string]bool)
ResetStore removes all keys from the environment store except those in keep.
func (*Environment) SetAvailableLibrariesCallback ¶
func (e *Environment) SetAvailableLibrariesCallback(fn func() []LibraryInfo)
SetAvailableLibrariesCallback sets the available libraries callback for this environment. GetAvailableLibrariesCallback walks up the scope chain, so setting on any env makes it available to that env and all enclosed children.
func (*Environment) SetCachedSlot ¶ added in v0.7.1
func (e *Environment) SetCachedSlot(idx int, name string, val Object) bool
SetCachedSlot stores val at the given slot index after validating that the slot name matches. Returns false if the cache is stale, falling through to the full Set path.
func (*Environment) SetCurrentModule ¶ added in v0.4.0
func (e *Environment) SetCurrentModule(module string)
SetCurrentModule sets the current module path for relative import resolution
func (*Environment) SetGlobal ¶
func (e *Environment) SetGlobal(name string, val Object) Object
SetGlobal sets a variable in the global (outermost) environment
func (*Environment) SetImportCallback ¶
func (e *Environment) SetImportCallback(fn func(string) error)
SetImportCallback sets the import callback for this environment. GetImportCallback walks up the scope chain, so setting on any env makes it available to that env and all enclosed children.
func (*Environment) SetInParent ¶
func (e *Environment) SetInParent(name string, val Object) bool
SetInParent sets a variable in the parent environment (for nonlocal)
func (*Environment) SetInputReader ¶
func (e *Environment) SetInputReader(r io.Reader)
SetInputReader sets a custom reader for input
func (*Environment) SetOutputWriter ¶
func (e *Environment) SetOutputWriter(w io.Writer)
SetOutputWriter sets a custom writer for output
func (*Environment) SetSlotByIndex ¶ added in v0.7.1
func (e *Environment) SetSlotByIndex(idx int, val Object) bool
SetSlotByIndex stores val in the given local slot index when valid.
func (*Environment) SetupSlots ¶ added in v0.7.1
func (e *Environment) SetupSlots(slotIndex map[string]int, slotNames []string)
SetupSlots configures slot-based variable access on this environment.
func (*Environment) SnapshotCallables ¶ added in v0.6.3
func (e *Environment) SnapshotCallables() *CallableSnapshot
SnapshotCallables reads callable bindings from this environment into a self-contained snapshot. No references to the source Environment's maps are retained, so it is safe to pass the snapshot to another goroutine.
type Error ¶
func AsErrorObj ¶
AsErrorObj returns the object as an Error, or nil/false if not
func (*Error) CoerceFloat ¶
func (*Error) CoerceString ¶
func (*Error) Type ¶
func (e *Error) Type() ObjectType
type Exception ¶
type Exception struct {
Message string
ExceptionType string // Exception type for identification (e.g., "SystemExit", "ValueError", etc.)
Code int // Exit code for SystemExit; ignored for other exception types
}
func AsException ¶
AsException returns the object as an Exception, or nil/false if not
func NewSystemExit ¶
NewSystemExit creates a new SystemExit exception with the given code and message
func (*Exception) CoerceFloat ¶
func (*Exception) CoerceString ¶
func (*Exception) GetExitCode ¶
GetExitCode returns the exit code for SystemExit exceptions For non-SystemExit exceptions, returns 0 (the Code field is ignored)
func (*Exception) IsPermissionError ¶ added in v0.3.2
func (*Exception) IsSystemExit ¶
IsSystemExit returns true if this is a SystemExit exception
func (*Exception) Type ¶
func (ex *Exception) Type() ObjectType
type Float ¶
type Float struct {
// contains filtered or unexported fields
}
func (*Float) CoerceFloat ¶
func (*Float) CoerceString ¶
func (*Float) FloatValue ¶ added in v0.8.0
func (*Float) Type ¶
func (f *Float) Type() ObjectType
type FloatArray ¶ added in v0.6.3
func NewFloatArray1D ¶ added in v0.6.3
func NewFloatArray1D(data []float64) *FloatArray
func NewFloatArray2D ¶ added in v0.6.3
func NewFloatArray2D(data []float64, rows, cols int) *FloatArray
func (*FloatArray) AsBool ¶ added in v0.6.3
func (fa *FloatArray) AsBool() (bool, Object)
func (*FloatArray) AsDict ¶ added in v0.6.3
func (fa *FloatArray) AsDict() (map[string]Object, Object)
func (*FloatArray) AsFloat ¶ added in v0.6.3
func (fa *FloatArray) AsFloat() (float64, Object)
func (*FloatArray) AsInt ¶ added in v0.6.3
func (fa *FloatArray) AsInt() (int64, Object)
func (*FloatArray) AsList ¶ added in v0.6.3
func (fa *FloatArray) AsList() ([]Object, Object)
func (*FloatArray) AsString ¶ added in v0.6.3
func (fa *FloatArray) AsString() (string, Object)
func (*FloatArray) CoerceFloat ¶ added in v0.6.3
func (fa *FloatArray) CoerceFloat() (float64, Object)
func (*FloatArray) CoerceInt ¶ added in v0.6.3
func (fa *FloatArray) CoerceInt() (int64, Object)
func (*FloatArray) CoerceString ¶ added in v0.6.3
func (fa *FloatArray) CoerceString() (string, Object)
func (*FloatArray) Cols ¶ added in v0.6.3
func (fa *FloatArray) Cols() int
func (*FloatArray) FloatArrayData ¶ added in v0.6.3
func (fa *FloatArray) FloatArrayData() ([]float64, []int, bool)
func (*FloatArray) Inspect ¶ added in v0.6.3
func (fa *FloatArray) Inspect() string
func (*FloatArray) Is2D ¶ added in v0.6.3
func (fa *FloatArray) Is2D() bool
func (*FloatArray) PrettyPrint ¶ added in v0.6.3
func (fa *FloatArray) PrettyPrint() string
func (*FloatArray) Row ¶ added in v0.6.3
func (fa *FloatArray) Row(i int) []float64
func (*FloatArray) Rows ¶ added in v0.6.3
func (fa *FloatArray) Rows() int
func (*FloatArray) ToList ¶ added in v0.6.3
func (fa *FloatArray) ToList() *List
func (*FloatArray) Type ¶ added in v0.6.3
func (fa *FloatArray) Type() ObjectType
type Function ¶
type Function struct {
Name string
Parameters []*ast.Identifier
DefaultValues map[string]ast.Expression
Variadic *ast.Identifier // *args parameter
Kwargs *ast.Identifier // **kwargs parameter
KeywordOnlyStart int // 1-based index where keyword-only params start; 0 means none
Body *ast.BlockStatement
Env *Environment
LocalSlots map[string]int
LocalSlotNames []string
ParamSlotIndexes []int
ReuseCallEnv bool
}
func (*Function) CoerceFloat ¶
func (*Function) CoerceString ¶
func (*Function) Type ¶
func (f *Function) Type() ObjectType
type FunctionBuilder ¶
type FunctionBuilder struct {
// contains filtered or unexported fields
}
FunctionBuilder provides a fluent API for creating individual scriptling functions. It allows registering a single typed Go function that is automatically wrapped to handle conversion between Go types and scriptling Objects.
Example usage:
fb := NewFunctionBuilder()
fb.Function(func(a, b int) int { return a + b })
fn := fb.Build()
p.RegisterFunc("add", fn)
func NewFunctionBuilder ¶
func NewFunctionBuilder() *FunctionBuilder
NewFunctionBuilder creates a new FunctionBuilder for building individual functions.
func (*FunctionBuilder) Build ¶
Build creates and returns the BuiltinFunction from this builder. The returned function can be passed directly to RegisterFunc().
func (*FunctionBuilder) Function ¶
func (fb *FunctionBuilder) Function(fn interface{}) *FunctionBuilder
Function registers a typed Go function with the builder. The function must be a Go function with typed parameters. Supported signatures are the same as LibraryBuilder.Function().
Example:
fb.Function(func(a, b int) int { return a + b })
func (*FunctionBuilder) FunctionWithHelp ¶
func (fb *FunctionBuilder) FunctionWithHelp(fn interface{}, helpText string) *FunctionBuilder
FunctionWithHelp registers a function with help text. Help text is displayed when users call help() on the function.
Example:
fb.FunctionWithHelp(func(x float64) float64 {
return math.Sqrt(x)
}, "sqrt(x) - Return the square root of x")
type FunctionSignature ¶
type FunctionSignature struct {
// contains filtered or unexported fields
}
FunctionSignature holds pre-computed function analysis
type Instance ¶
type Instance struct {
Class *Class
Fields map[string]Object
NativeData any
// contains filtered or unexported fields
}
func (*Instance) CoerceFloat ¶
func (*Instance) CoerceString ¶
func (*Instance) GetBoundMethod ¶ added in v0.5.6
func (i *Instance) GetBoundMethod(name string, method Object) *BoundMethod
func (*Instance) InvalidateBoundMethod ¶ added in v0.5.6
func (*Instance) Type ¶
func (i *Instance) Type() ObjectType
type Integer ¶
type Integer struct {
// contains filtered or unexported fields
}
func NewInteger ¶
NewInteger returns a cached integer for small values, or a new Integer for larger values
func (*Integer) CoerceFloat ¶
func (*Integer) CoerceString ¶
func (*Integer) Type ¶
func (i *Integer) Type() ObjectType
type Iterator ¶
type Iterator struct {
// contains filtered or unexported fields
}
Iterator represents a Python-style iterator
func NewEnumerateIterator ¶
EnumerateIterator creates an iterator that returns (index, value) tuples
func NewIterator ¶
NewIterator creates an iterator with a custom next function This allows creating iterators that can call functions with proper context
func NewRangeIterator ¶
RangeIterator creates an iterator for range(start, stop, step)
func NewReversedIterator ¶
ReversedIterator creates an iterator that returns elements in reverse order
func NewZipIterator ¶
ZipIterator creates an iterator that zips multiple iterables together
func (*Iterator) CoerceFloat ¶
func (*Iterator) CoerceString ¶
func (*Iterator) Type ¶
func (it *Iterator) Type() ObjectType
type Kwargs ¶
Kwargs is a special type for functions that accept keyword arguments. It wraps the raw kwargs map and provides helper methods for extracting values.
func (Kwargs) MustGetBool ¶
MustGetBool extracts a boolean keyword argument, ignoring errors.
func (Kwargs) MustGetFloat ¶
MustGetFloat extracts a float keyword argument, ignoring errors.
func (Kwargs) MustGetInt ¶
MustGetInt extracts an integer keyword argument, ignoring errors.
func (Kwargs) MustGetList ¶
MustGetList extracts a list keyword argument, ignoring errors.
type LambdaFunction ¶
type LambdaFunction struct {
Parameters []*ast.Identifier
DefaultValues map[string]ast.Expression
Variadic *ast.Identifier // *args parameter
Kwargs *ast.Identifier // **kwargs parameter
KeywordOnlyStart int // 1-based index where keyword-only params start; 0 means none
Body ast.Expression
Env *Environment
LocalSlots map[string]int
LocalSlotNames []string
ParamSlotIndexes []int
}
func (*LambdaFunction) AsBool ¶
func (lf *LambdaFunction) AsBool() (bool, Object)
func (*LambdaFunction) AsFloat ¶
func (lf *LambdaFunction) AsFloat() (float64, Object)
func (*LambdaFunction) AsInt ¶
func (lf *LambdaFunction) AsInt() (int64, Object)
func (*LambdaFunction) AsList ¶
func (lf *LambdaFunction) AsList() ([]Object, Object)
func (*LambdaFunction) AsString ¶
func (lf *LambdaFunction) AsString() (string, Object)
func (*LambdaFunction) CoerceFloat ¶
func (lf *LambdaFunction) CoerceFloat() (float64, Object)
func (*LambdaFunction) CoerceInt ¶
func (lf *LambdaFunction) CoerceInt() (int64, Object)
func (*LambdaFunction) CoerceString ¶
func (lf *LambdaFunction) CoerceString() (string, Object)
func (*LambdaFunction) Inspect ¶
func (lf *LambdaFunction) Inspect() string
func (*LambdaFunction) Type ¶
func (lf *LambdaFunction) Type() ObjectType
type Library ¶
type Library struct {
// contains filtered or unexported fields
}
Library represents a pre-built collection of builtin functions and constants
func NewLibrary ¶
func NewLibrary(name string, functions map[string]*Builtin, constants map[string]Object, description string) *Library
NewLibrary creates a new library with functions, optional constants, and optional description
func (*Library) CachedDict ¶
CachedDict returns nil (caching removed). Kept for test compatibility.
func (*Library) CoerceFloat ¶
func (*Library) CoerceString ¶
func (*Library) Description ¶
Description returns the library's description
func (*Library) GetDict ¶
GetDict builds and returns a fresh Dict representation of this library. Returns a new dict each time so callers (including concurrent goroutines) never share mutable state.
func (*Library) InstanceData ¶
InstanceData returns the instance-specific data for this library
func (*Library) Instantiate ¶
Instantiate creates a new library instance with instance-specific data Functions are wrapped to inject the instance data into the context
func (*Library) Type ¶
func (l *Library) Type() ObjectType
type LibraryBuilder ¶
type LibraryBuilder struct {
// contains filtered or unexported fields
}
LibraryBuilder provides a fluent API for creating scriptling libraries. It allows registering typed Go functions that are automatically wrapped to handle conversion between Go types and scriptling Objects.
Example usage:
lib := NewLibraryBuilder("mylib", "My custom library")
lib.Function("connect", func(host string, port int) error {
// Connect to host:port
return nil
})
lib.Function("disconnect", func() error {
// Disconnect
return nil
})
lib.Constant("VERSION", "1.0.0")
library := lib.Build()
func NewLibraryBuilder ¶
func NewLibraryBuilder(name, description string) *LibraryBuilder
NewLibraryBuilder creates a new LibraryBuilder with the given name and description.
func (*LibraryBuilder) Alias ¶
func (b *LibraryBuilder) Alias(alias, originalName string) *LibraryBuilder
Alias creates an alias for an existing function.
Example:
builder.Function("add", func(a, b int) int { return a + b })
builder.Alias("sum", "add") // "sum" is now an alias for "add"
func (*LibraryBuilder) Build ¶
func (b *LibraryBuilder) Build() *Library
Build creates and returns the Library from this builder. After calling Build(), the builder should not be used further.
func (*LibraryBuilder) Clear ¶
func (b *LibraryBuilder) Clear() *LibraryBuilder
Clear removes all registered functions and constants.
func (*LibraryBuilder) Constant ¶
func (b *LibraryBuilder) Constant(name string, value interface{}) *LibraryBuilder
Constant registers a constant value with the given name. The value is automatically converted to a scriptling Object. Supported types: string, int, int64, float64, bool, nil
Example:
builder.Constant("VERSION", "1.0.0")
builder.Constant("MAX_CONNECTIONS", 100)
builder.Constant("DEBUG", true)
func (*LibraryBuilder) ConstantCount ¶
func (b *LibraryBuilder) ConstantCount() int
ConstantCount returns the number of registered constants.
func (*LibraryBuilder) Description ¶
func (b *LibraryBuilder) Description(desc string) *LibraryBuilder
Description sets or updates the library description.
func (*LibraryBuilder) Function ¶
func (b *LibraryBuilder) Function(name string, fn interface{}) *LibraryBuilder
Function registers a function with the given name. The function must be a Go function with typed parameters. Parameters can be: string, int, int64, float64, bool, []any, map[string]any Return values can be: any of the above types, or error
Example:
builder.Function("add", func(a, b int) int { return a + b })
builder.Function("greet", func(name string) string { return "Hello, " + name })
builder.Function("connect", func(host string, port int) error { ... })
func (*LibraryBuilder) FunctionCount ¶
func (b *LibraryBuilder) FunctionCount() int
FunctionCount returns the number of registered functions.
func (*LibraryBuilder) FunctionFromVariadic ¶
func (b *LibraryBuilder) FunctionFromVariadic(name string, fn interface{}) *LibraryBuilder
FunctionFromVariadic registers a variadic function that accepts a variable number of arguments. This is useful for functions like print() that can take any number of arguments.
Example:
builder.FunctionFromVariadic("print_all", func(args ...any) {
for _, arg := range args {
fmt.Println(arg)
}
})
func (*LibraryBuilder) FunctionFromVariadicWithHelp ¶
func (b *LibraryBuilder) FunctionFromVariadicWithHelp(name string, fn interface{}, helpText string) *LibraryBuilder
FunctionFromVariadicWithHelp registers a variadic function with help text.
func (*LibraryBuilder) FunctionWithHelp ¶
func (b *LibraryBuilder) FunctionWithHelp(name string, fn interface{}, helpText string) *LibraryBuilder
FunctionWithHelp registers a function with the given name and help text. The function must be a Go function with typed parameters. Help text is displayed when users call help() on the function.
Example:
builder.FunctionWithHelp("sqrt", func(x float64) float64 {
return math.Sqrt(x)
}, "sqrt(x) - Return the square root of x")
func (*LibraryBuilder) GetConstantNames ¶
func (b *LibraryBuilder) GetConstantNames() []string
GetConstantNames returns a sorted list of registered constant names.
func (*LibraryBuilder) GetDescription ¶
func (b *LibraryBuilder) GetDescription() string
GetDescription returns the current library description.
func (*LibraryBuilder) GetFunctionNames ¶
func (b *LibraryBuilder) GetFunctionNames() []string
GetFunctionNames returns a sorted list of registered function names.
func (*LibraryBuilder) HasConstant ¶
func (b *LibraryBuilder) HasConstant(name string) bool
HasConstant checks if a constant with the given name has been registered.
func (*LibraryBuilder) HasFunction ¶
func (b *LibraryBuilder) HasFunction(name string) bool
HasFunction checks if a function with the given name has been registered.
func (*LibraryBuilder) Merge ¶
func (b *LibraryBuilder) Merge(other *LibraryBuilder) *LibraryBuilder
Merge merges another builder's functions and constants into this one. If there are conflicts, the other builder's values take precedence.
func (*LibraryBuilder) RemoveConstant ¶
func (b *LibraryBuilder) RemoveConstant(name string) *LibraryBuilder
RemoveConstant removes a constant by name.
func (*LibraryBuilder) RemoveFunction ¶
func (b *LibraryBuilder) RemoveFunction(name string) *LibraryBuilder
RemoveFunction removes a function by name.
func (*LibraryBuilder) String ¶
func (b *LibraryBuilder) String() string
String returns a string representation of the builder's state.
func (*LibraryBuilder) SubLibrary ¶
func (b *LibraryBuilder) SubLibrary(name string, lib *Library) *LibraryBuilder
SubLibrary embeds a library as a named constant in the parent, enabling attribute-style access: `import parent as p; p.sub.func()`.
Note: for `import parent.sub` to work, the sub-library must also be registered independently via RegisterLibrary using its full dotted name.
Example:
subLib := NewLibraryBuilder("mylib.sub", "Sub utilities").Function(...).Build()
p.RegisterLibrary(subLib) // enables: import mylib.sub as sub
builder.SubLibrary("sub", subLib) // enables: import mylib as m; m.sub.func()
type LibraryInfo ¶
LibraryInfo contains information about available libraries
type LibraryRegistrar ¶
type LibraryRegistrar interface {
RegisterLibrary(lib *Library)
}
LibraryRegistrar is an interface for registering libraries. This allows external libraries to register themselves without circular imports.
type List ¶
type List struct {
Elements []Object
}
func (*List) CoerceFloat ¶
func (*List) CoerceString ¶
func (*List) Type ¶
func (l *List) Type() ObjectType
type Null ¶
type Null struct{}
func (*Null) CoerceFloat ¶
func (*Null) CoerceString ¶
func (*Null) Type ¶
func (n *Null) Type() ObjectType
type Object ¶
type Object interface {
Type() ObjectType
Inspect() string
// Type-safe accessor methods (strict type checking)
AsString() (string, Object)
AsInt() (int64, Object)
AsFloat() (float64, Object)
AsBool() (bool, Object)
AsList() ([]Object, Object)
AsDict() (map[string]Object, Object)
// Coercion methods (loose type conversion with best effort)
CoerceString() (string, Object)
CoerceInt() (int64, Object)
CoerceFloat() (float64, Object)
}
func CloneObject ¶ added in v0.5.2
CloneObject returns a deep copy of mutable Scriptling objects. Immutable/scalar types (Null, Boolean, Integer, Float, String, Builtin, Function, LambdaFunction, Class, Error, Exception) are returned as-is. Mutable containers (List, Dict, Set, Tuple, Instance) are recursively cloned. Opaque Instance.NativeData is not cloned because there is no generic way to duplicate native Go state safely.
func IterableToSlice ¶
IterableToSlice converts any iterable object (List, Tuple, String, Iterator, Set) to a slice of Objects. Returns (elements, ok) where ok is true if the conversion succeeded. For strings, each character becomes a String object. For iterators, this consumes the iterator. For dicts, returns the keys (like Python's list(dict)).
type ObjectType ¶
type ObjectType int
const ( INTEGER_OBJ ObjectType = iota FLOAT_OBJ BOOLEAN_OBJ STRING_OBJ NULL_OBJ RETURN_OBJ BREAK_OBJ CONTINUE_OBJ FUNCTION_OBJ LAMBDA_OBJ BUILTIN_OBJ LIST_OBJ TUPLE_OBJ DICT_OBJ ERROR_OBJ EXCEPTION_OBJ CLASS_OBJ INSTANCE_OBJ SUPER_OBJ ITERATOR_OBJ DICT_KEYS_OBJ DICT_VALUES_OBJ DICT_ITEMS_OBJ SET_OBJ SLICE_OBJ PROPERTY_OBJ STATICMETHOD_OBJ CLASSMETHOD_OBJ FLOAT_ARRAY_OBJ )
func (ObjectType) String ¶
func (ot ObjectType) String() string
String returns the string representation of the ObjectType
type Property ¶ added in v0.2.0
type Property struct {
Getter Object // Function to call when the attribute is accessed
Setter Object // Function to call when the attribute is assigned (nil = read-only)
}
Property wraps a getter (and optional setter) for use with @property.
func (*Property) CoerceFloat ¶ added in v0.2.0
func (*Property) CoerceString ¶ added in v0.2.0
func (*Property) Type ¶ added in v0.2.0
func (p *Property) Type() ObjectType
type ReturnValue ¶
type ReturnValue struct {
Value Object
}
func (*ReturnValue) AsBool ¶
func (rv *ReturnValue) AsBool() (bool, Object)
func (*ReturnValue) AsFloat ¶
func (rv *ReturnValue) AsFloat() (float64, Object)
func (*ReturnValue) AsInt ¶
func (rv *ReturnValue) AsInt() (int64, Object)
func (*ReturnValue) AsList ¶
func (rv *ReturnValue) AsList() ([]Object, Object)
func (*ReturnValue) AsString ¶
func (rv *ReturnValue) AsString() (string, Object)
func (*ReturnValue) CoerceFloat ¶
func (rv *ReturnValue) CoerceFloat() (float64, Object)
func (*ReturnValue) CoerceInt ¶
func (rv *ReturnValue) CoerceInt() (int64, Object)
func (*ReturnValue) CoerceString ¶
func (rv *ReturnValue) CoerceString() (string, Object)
func (*ReturnValue) Inspect ¶
func (rv *ReturnValue) Inspect() string
func (*ReturnValue) Type ¶
func (rv *ReturnValue) Type() ObjectType
type Set ¶
Set represents a set of unique objects
func (*Set) AddKeyed ¶ added in v0.3.2
AddKeyed adds an element with a pre-computed key (used when __hash__ is involved)
func (*Set) CoerceFloat ¶
func (*Set) CoerceString ¶
func (*Set) ContainsKeyed ¶ added in v0.3.2
ContainsKeyed checks membership using a pre-computed key
func (*Set) CreateIterator ¶
CreateIterator returns an iterator for the set
func (*Set) Difference ¶
Difference returns a new set with elements in s but not in other
func (*Set) Intersection ¶
Intersection returns a new set with elements common to both sets
func (*Set) IsSuperset ¶
IsSuperset checks if s is a superset of other
func (*Set) SymmetricDifference ¶
SymmetricDifference returns a new set with elements in either s or other but not both
func (*Set) Type ¶
func (s *Set) Type() ObjectType
type Slice ¶
type Slice struct {
Start *Integer // nil means None (default start)
End *Integer // nil means None (default end)
Step *Integer // nil means None (default step = 1)
}
func (*Slice) CoerceFloat ¶
func (*Slice) CoerceString ¶
func (*Slice) Type ¶
func (s *Slice) Type() ObjectType
type StaticMethod ¶ added in v0.2.0
type StaticMethod struct {
Fn Object
}
StaticMethod wraps a function for use with @staticmethod. When called on an instance, self is not prepended.
func (*StaticMethod) AsBool ¶ added in v0.2.0
func (s *StaticMethod) AsBool() (bool, Object)
func (*StaticMethod) AsDict ¶ added in v0.2.0
func (s *StaticMethod) AsDict() (map[string]Object, Object)
func (*StaticMethod) AsFloat ¶ added in v0.2.0
func (s *StaticMethod) AsFloat() (float64, Object)
func (*StaticMethod) AsInt ¶ added in v0.2.0
func (s *StaticMethod) AsInt() (int64, Object)
func (*StaticMethod) AsList ¶ added in v0.2.0
func (s *StaticMethod) AsList() ([]Object, Object)
func (*StaticMethod) AsString ¶ added in v0.2.0
func (s *StaticMethod) AsString() (string, Object)
func (*StaticMethod) CoerceFloat ¶ added in v0.2.0
func (s *StaticMethod) CoerceFloat() (float64, Object)
func (*StaticMethod) CoerceInt ¶ added in v0.2.0
func (s *StaticMethod) CoerceInt() (int64, Object)
func (*StaticMethod) CoerceString ¶ added in v0.2.0
func (s *StaticMethod) CoerceString() (string, Object)
func (*StaticMethod) Inspect ¶ added in v0.2.0
func (s *StaticMethod) Inspect() string
func (*StaticMethod) Type ¶ added in v0.2.0
func (s *StaticMethod) Type() ObjectType
type String ¶
type String struct {
// contains filtered or unexported fields
}
func (*String) CoerceFloat ¶
func (*String) CoerceString ¶
func (*String) StringValue ¶ added in v0.8.0
func (*String) Type ¶
func (s *String) Type() ObjectType
type Super ¶
func (*Super) CoerceFloat ¶
func (*Super) CoerceString ¶
func (*Super) Type ¶
func (s *Super) Type() ObjectType
type Tuple ¶
type Tuple struct {
Elements []Object
}
func (*Tuple) CoerceFloat ¶
func (*Tuple) CoerceString ¶
func (*Tuple) Type ¶
func (t *Tuple) Type() ObjectType