value

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2025 License: MIT Imports: 38 Imported by: 0

Documentation

Overview

Package value contains definitions of Elk values, classes, structs, modules etc.

Index

Constants

View Source
const (
	CLASS_SINGLETON_FLAG   bitfield.BitFlag8 = 1 << iota // Singleton classes are hidden classes often associated with a single value
	CLASS_MIXIN_PROXY_FLAG                               // This class serves as a proxy to an included mixin
	CLASS_MIXIN_FLAG                                     // This class is a mixin
)
View Source
const (
	SundayAlt = iota
	Monday
	Tuesday
	Wednesday
	Thursday
	Friday
	Saturday
	Sunday
)
View Source
const (
	Nanosecond  TimeSpan = 1
	Microsecond          = 1000 * Nanosecond
	Millisecond          = 1000 * Microsecond
	Second               = 1000 * Millisecond
	Minute               = 60 * Second
	Hour                 = 60 * Minute
	Day                  = 24 * Hour
	Week                 = 7 * Day
	Month                = TimeSpan(MonthDays * float64(Day))
	Year                 = TimeSpan(YearDays * float64(Day))
)
View Source
const (
	UNDEFINED_FLAG = iota
	TRUE_FLAG
	FALSE_FLAG
	NIL_FLAG
	SMALL_INT_FLAG
	FLOAT_FLAG
	FLOAT32_FLAG
	INT8_FLAG
	UINT8_FLAG
	INT16_FLAG
	UINT16_FLAG
	INT32_FLAG
	UINT32_FLAG
	UINT_FLAG
	CHAR_FLAG
	SYMBOL_FLAG
	DATE_FLAG
	WEAK_FLAG

	// only 64 bit systems
	INT64_FLAG
	UINT64_FLAG
	FLOAT64_FLAG
	TIME_FLAG
	TIME_SPAN_FLAG
	DATE_SPAN_FLAG
	REFERENCE_FLAG

	SENTINEL_FLAG = 0xFF
)
View Source
const BigFloatNaNMode big.RoundingMode = 0b111
View Source
const DateMaxDay = 31
View Source
const DateMaxMonth = 12
View Source
const DateMaxYear = (1 << 22) - 1
View Source
const DateMinDay = 1
View Source
const DateMinMonth = 1
View Source
const DateMinYear = -(1 << 22)
View Source
const DefaultDateFormat = "%Y-%m-%d"
View Source
const DefaultDateTimeFormat = "%Y-%m-%d %H:%M:%S.%9N %:z"
View Source
const DefaultTimeFormat = "%H:%M:%S.%9N"
View Source
const FloatPrecision = 53
View Source
const HashMapMaxLoad = 0.75
View Source
const HashSetMaxLoad = 0.75
View Source
const MAX_ARRAY_LIST_ELEMENTS_IN_INSPECT = 300
View Source
const MAX_ARRAY_TUPLE_ELEMENTS_IN_INSPECT = 300
View Source
const MAX_HASH_MAP_ELEMENTS_IN_INSPECT = 300
View Source
const MAX_HASH_RECORD_ELEMENTS_IN_INSPECT = 300
View Source
const MAX_HASH_SET_ELEMENTS_IN_INSPECT = 300
View Source
const MAX_IVAR_INDICES_ELEMENTS_IN_INSPECT = 300
View Source
const MaxSmallInt = math.MaxInt

Max value of SmallInt

View Source
const MinSmallInt = math.MinInt

Min value of SmallInt

View Source
const MonthDays = 30.4375
View Source
const PtrSize = 4 << (^uintptr(0) >> 63)
View Source
const SmallIntBits = PtrSize * 8

Number of bits available for a small int.

View Source
const ValueSize = unsafe.Sizeof(Value{})
View Source
const YearDays = 365.25

Variables

View Source
var (
	// positive infinity
	BigFloatInfVal = BigFloatInf()
	// negative infinity
	BigFloatNegInfVal = BigFloatNegInf()
	// not a number value
	BigFloatNaNVal = BigFloatNaN()
)
View Source
var False = FalseType{}.ToValue()

Elk's false value

View Source
var GlobalObject = GlobalObjectType{}
View Source
var LocalTimezone = NewTimezone(time.Local)
View Source
var SYMBOL_TABLE_INITIAL_SIZE int

The number of preallocated slots for symbols in the symbol table at startup.

View Source
var True = TrueType{}.ToValue()

Elk's true value

View Source
var UTCTimezone = NewTimezone(time.UTC)
View Source
var Undefined = UndefinedType{}.ToValue()

Functions

func AddConstant

func AddConstant(namespace Value, name Symbol, val Value)

func AddInt

func AddInt(left, right Value) (Value, Value)

func CompareInt

func CompareInt(left, right Value) (Value, Value)

func CountFloatDigits

func CountFloatDigits(str string) int

Counts the number of decimal digits in the string.

func DivideInt

func DivideInt(left, right Value) (Value, Value)

func Equal

func Equal(left, right Value) bool

func ExponentiateInt

func ExponentiateInt(left, right Value) (Value, Value)

func Falsy

func Falsy(val Value) bool

Returns true when the Elk value is falsy (works like false in boolean logic) otherwise returns false.

func Hash

func Hash(key Value) (result UInt64, err Value)

Calculate the hash of the value. When successful returns (result, undefined). When an error occurred returns (0, error). When there are no builtin addition functions for the given type returns (0, NotBuiltinError).

func InitGlobalEnvironment

func InitGlobalEnvironment()

Initialize all built-ins

func InspectSlice

func InspectSlice[T Inspectable](slice []T) string

Return the string representation of a slice of values.

func InspectSymbol

func InspectSymbol(name string) string

func InspectSymbolContent

func InspectSymbolContent(name string) string

func InstanceOf

func InstanceOf(val Value, class *Class) bool

Check if the given value is an instance of the given class.

func IntToGoInt

func IntToGoInt(val Value) (int, bool)

Converts an Elk value strictly to Go int. Returns (0, false) when the value is incompatible. Returns (-1, false) when the value is a BigInt too large to be converted to int.

func IsA

func IsA(val Value, class *Class) bool

func IsMutableCollection

func IsMutableCollection(val Value) bool

func IsNil

func IsNil(val Value) bool

Returns true when the Elk value is nil otherwise returns false.

func IterateNativeIterator

func IterateNativeIterator(iter NativeIterator) iter.Seq2[Value, Value]

func LoadTimezone

func LoadTimezone(name string) (zone *Timezone, err Value)

Load a timezone from the IANA database.

func LogicalRightShift16

func LogicalRightShift16[L SimpleInt](left L, right uint64) L

func LogicalRightShift32

func LogicalRightShift32[L SimpleInt](left L, right uint64) L

func LogicalRightShift64

func LogicalRightShift64[L SimpleInt](left L, right uint64) L

func LogicalRightShift8

func LogicalRightShift8[L SimpleInt](left L, right uint64) L

func MakeValidatedDate

func MakeValidatedDate(year, month, day int) (Date, Value)

Make and validate a new date

func ModuloInt

func ModuloInt(left, right Value) (Value, Value)

func MultiplyInt

func MultiplyInt(left, right Value) (Value, Value)

func MustStrictParseInt

func MustStrictParseInt(s string, base int, bitSize int) int64

func MustStrictParseUint

func MustStrictParseUint(s string, base int, bitSize int) uint64

func NewClassComparer

func NewClassComparer(opts *cmp.Options) cmp.Option

func NewInlineValueComparer

func NewInlineValueComparer(opts *cmp.Options) cmp.Option

func NewInterfaceComparer

func NewInterfaceComparer(opts *cmp.Options) cmp.Option

func NewModuleComparer

func NewModuleComparer(opts *cmp.Options) cmp.Option

func NewObjectComparer

func NewObjectComparer(opts *cmp.Options) cmp.Option

func NewReferenceComparer

func NewReferenceComparer() cmp.Option

func NewRegexComparer

func NewRegexComparer(opts *cmp.Options) cmp.Option

func NewSymbolTableComparer

func NewSymbolTableComparer() cmp.Option

func NewTimezoneFromOffsetErr

func NewTimezoneFromOffsetErr(offset TimeSpan) (*Timezone, Value)

Create a new timezone based on a fixed offset and return an error for invalid values

func ParseBigFloat

func ParseBigFloat(str string) (*BigFloat, Value)

Parse a big float value from the given string.

func ParseBigInt

func ParseBigInt(s string, base int) (*BigInt, Value)

Parses a signed big.Int from a string using Elk syntax.

func ParseBigIntWithErr

func ParseBigIntWithErr(s string, base int, formatError *Class) (*BigInt, Value)

Parses a signed big.Int from a string using Elk syntax.

func ParseDate

func ParseDate(formatString, input string) (result Date, err Value)

func ParseDateSpan

func ParseDateSpan(str string) (result DateSpan, err Value)

Create a string formatted according to the given format string.

func ParseDateTime

func ParseDateTime(formatString, input string) (result *DateTime, err Value)

func ParseDateTimeSpan

func ParseDateTimeSpan(str string) (result *DateTimeSpan, err Value)

Parses a time span string and creates a datetime span value. A datetime span string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid time units are "Y", "M", "D", "h", "m", "s", "ms", "us" (or "µs"), "ns".

func ParseInt

func ParseInt(s string, base int) (Value, Value)

func ParseIntWithErr

func ParseIntWithErr(s string, base int, formatErr *Class) (Value, Value)

func ParseTime

func ParseTime(formatString, input string) (result Time, err Value)

func ParseTimeSpan

func ParseTimeSpan(str string) (result TimeSpan, err Value)

Parses a time span string and creates a datetime span value. A datetime span string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid time units are "h", "m", "s", "ms", "us" (or "µs"), "ns".

func PrecisionForFloatString

func PrecisionForFloatString(str string) uint

Calculates the precision required to represent the float in the given string.

func RefErr

func RefErr(ref Reference, err Value) (Value, Value)

func SetInstanceVariable

func SetInstanceVariable(object Value, index int, val Value)

Set an object's instance variable with the given index to the given value

func StrictEqual

func StrictEqual(left, right Value) bool

func SubtractInt

func SubtractInt(left, right Value) (Value, Value)

func ToGoInt

func ToGoInt(val Value) (int, bool)

Converts an Elk value to Go int. Returns (0, false) when the value is incompatible. Returns (-1, false) when the value is a BigInt too large to be converted to int.

func ToGoUInt

func ToGoUInt(val Value) (uint, bool)

Converts an Elk value to Go uint. Returns (0, false) when the value is incompatible, too large or negative.

func ToValueErr

func ToValueErr[T ToValuer](t T, err Value) (Value, Value)

func Truthy

func Truthy(val Value) bool

Returns true when the Elk value is truthy (works like true in boolean logic) otherwise returns false.

Types

type ArrayList

type ArrayList []Value

Elk's ArrayList value

func NewArrayList

func NewArrayList(capacity int) *ArrayList

func NewArrayListWithElements

func NewArrayListWithElements(capacity int, elements ...Value) *ArrayList

func NewArrayListWithLength

func NewArrayListWithLength(length int) *ArrayList

func (*ArrayList) Append

func (l *ArrayList) Append(elements ...Value)

Add new elements.

func (*ArrayList) At

func (l *ArrayList) At(i int) Value

Get an element under the given index without bounds checking

func (*ArrayList) BoxOf

func (l *ArrayList) BoxOf(index int) (*Box, Value)

Return a box pointing to the slot with the given index.

func (*ArrayList) BoxOfVal

func (l *ArrayList) BoxOfVal(index Value) (*Box, Value)

Return a box pointing to the slot with the given index.

func (*ArrayList) Capacity

func (l *ArrayList) Capacity() int

func (*ArrayList) Class

func (*ArrayList) Class() *Class

func (*ArrayList) Concat

func (l *ArrayList) Concat(other Value) (*ArrayList, Value)

Concatenate another value with this list, creating a new list, and return the result. If the operation is illegal an error will be returned.

func (*ArrayList) Copy

func (l *ArrayList) Copy() Reference

func (*ArrayList) DirectClass

func (*ArrayList) DirectClass() *Class

func (*ArrayList) Error

func (l *ArrayList) Error() string

func (*ArrayList) Expand

func (l *ArrayList) Expand(newElements int)

Expands the list by n nil elements.

func (*ArrayList) Get

func (l *ArrayList) Get(index int) (Value, Value)

Get an element under the given index.

func (*ArrayList) Grow

func (l *ArrayList) Grow(newSlots int)

Expand the array list to have empty slots for new elements.

func (*ArrayList) ImmutableBoxOfVal

func (l *ArrayList) ImmutableBoxOfVal(index Value) (*ImmutableBox, Value)

Return an immutable box pointing to the slot with the given index.

func (*ArrayList) Inspect

func (l *ArrayList) Inspect() string

func (*ArrayList) InstanceVariables

func (*ArrayList) InstanceVariables() *InstanceVariables

func (*ArrayList) LeftCapacity

func (l *ArrayList) LeftCapacity() int

func (*ArrayList) Length

func (l *ArrayList) Length() int

func (*ArrayList) RemoveAt

func (l *ArrayList) RemoveAt(i int)

func (*ArrayList) RemoveAtErr

func (l *ArrayList) RemoveAtErr(index int) Value

func (*ArrayList) Repeat

func (l *ArrayList) Repeat(other Value) (*ArrayList, Value)

Repeat the content of this list n times and return a new list containing the result. If the operation is illegal an error will be returned.

func (*ArrayList) Set

func (l *ArrayList) Set(index int, val Value) Value

Set an element under the given index.

func (*ArrayList) SetAt

func (l *ArrayList) SetAt(index int, val Value)

Set an element under the given index without bounds checking.

func (*ArrayList) SingletonClass

func (*ArrayList) SingletonClass() *Class

func (*ArrayList) Subscript

func (l *ArrayList) Subscript(key Value) (Value, Value)

Get an element under the given index.

func (*ArrayList) SubscriptSet

func (l *ArrayList) SubscriptSet(key, val Value) Value

Set an element under the given index.

type ArrayListIterator

type ArrayListIterator struct {
	ArrayList *ArrayList
	Index     int
}

func NewArrayListIterator

func NewArrayListIterator(list *ArrayList) *ArrayListIterator

func NewArrayListIteratorWithIndex

func NewArrayListIteratorWithIndex(list *ArrayList, index int) *ArrayListIterator

func (*ArrayListIterator) Class

func (*ArrayListIterator) Class() *Class

func (*ArrayListIterator) Copy

func (l *ArrayListIterator) Copy() Reference

func (*ArrayListIterator) DirectClass

func (*ArrayListIterator) DirectClass() *Class

func (*ArrayListIterator) Error

func (l *ArrayListIterator) Error() string

func (*ArrayListIterator) Inspect

func (l *ArrayListIterator) Inspect() string

func (*ArrayListIterator) InstanceVariables

func (*ArrayListIterator) InstanceVariables() *InstanceVariables

func (*ArrayListIterator) Next

func (l *ArrayListIterator) Next() (Value, Value)

func (*ArrayListIterator) Reset

func (l *ArrayListIterator) Reset()

func (*ArrayListIterator) SingletonClass

func (*ArrayListIterator) SingletonClass() *Class

type ArrayTuple

type ArrayTuple []Value

Elk's ArrayTuple value

func NewArrayTuple

func NewArrayTuple(capacity int) *ArrayTuple

func NewArrayTupleWithElements

func NewArrayTupleWithElements(capacity int, elements ...Value) *ArrayTuple

func NewArrayTupleWithLength

func NewArrayTupleWithLength(length int) *ArrayTuple

func (*ArrayTuple) Append

func (t *ArrayTuple) Append(element Value)

Add a new element.

func (*ArrayTuple) At

func (t *ArrayTuple) At(i int) Value

Get an element under the given index without bounds checking.

func (*ArrayTuple) Class

func (*ArrayTuple) Class() *Class

func (*ArrayTuple) ConcatVal

func (t *ArrayTuple) ConcatVal(other Value) (Value, Value)

Concatenate another value with this arrayTuple, creating a new value, and return the result. If the operation is illegal an error will be returned.

func (*ArrayTuple) Copy

func (t *ArrayTuple) Copy() Reference

func (*ArrayTuple) DirectClass

func (*ArrayTuple) DirectClass() *Class

func (*ArrayTuple) Error

func (t *ArrayTuple) Error() string

func (*ArrayTuple) Expand

func (t *ArrayTuple) Expand(newElements int)

Expands the arrayTuple by n nil elements.

func (*ArrayTuple) Get

func (t *ArrayTuple) Get(index int) (Value, Value)

Get an element under the given index.

func (*ArrayTuple) ImmutableBoxOf

func (l *ArrayTuple) ImmutableBoxOf(index int) (*ImmutableBox, Value)

Return a box pointing to the slot with the given index.

func (*ArrayTuple) ImmutableBoxOfVal

func (l *ArrayTuple) ImmutableBoxOfVal(index Value) (*ImmutableBox, Value)

Return a box pointing to the slot with the given index.

func (*ArrayTuple) Inspect

func (t *ArrayTuple) Inspect() string

func (*ArrayTuple) InstanceVariables

func (*ArrayTuple) InstanceVariables() *InstanceVariables

func (*ArrayTuple) Length

func (t *ArrayTuple) Length() int

func (*ArrayTuple) Repeat

func (t *ArrayTuple) Repeat(other Value) (*ArrayTuple, Value)

Repeat the content of this arrayTuple n times and return a new arrayTuple containing the result. If the operation is illegal an error will be returned.

func (*ArrayTuple) Set

func (t *ArrayTuple) Set(index int, val Value) Value

Set an element under the given index.

func (*ArrayTuple) SetAt

func (t *ArrayTuple) SetAt(index int, val Value)

Set an element under the given index without bounds checking.

func (*ArrayTuple) SingletonClass

func (*ArrayTuple) SingletonClass() *Class

func (*ArrayTuple) Subscript

func (t *ArrayTuple) Subscript(key Value) (Value, Value)

Get an element under the given index.

func (*ArrayTuple) SubscriptSet

func (t *ArrayTuple) SubscriptSet(key, val Value) Value

Set an element under the given index.

type ArrayTupleIterator

type ArrayTupleIterator struct {
	ArrayTuple *ArrayTuple
	Index      int
}

func NewArrayTupleIterator

func NewArrayTupleIterator(arrayTuple *ArrayTuple) *ArrayTupleIterator

func NewArrayTupleIteratorWithIndex

func NewArrayTupleIteratorWithIndex(arrayTuple *ArrayTuple, index int) *ArrayTupleIterator

func (*ArrayTupleIterator) Class

func (*ArrayTupleIterator) Class() *Class

func (*ArrayTupleIterator) Copy

func (t *ArrayTupleIterator) Copy() Reference

func (*ArrayTupleIterator) DirectClass

func (*ArrayTupleIterator) DirectClass() *Class

func (*ArrayTupleIterator) Error

func (t *ArrayTupleIterator) Error() string

func (*ArrayTupleIterator) Inspect

func (t *ArrayTupleIterator) Inspect() string

func (*ArrayTupleIterator) InstanceVariables

func (*ArrayTupleIterator) InstanceVariables() *InstanceVariables

func (*ArrayTupleIterator) Next

func (t *ArrayTupleIterator) Next() (Value, Value)

func (*ArrayTupleIterator) Reset

func (t *ArrayTupleIterator) Reset()

func (*ArrayTupleIterator) SingletonClass

func (*ArrayTupleIterator) SingletonClass() *Class

type BeginlessClosedRange

type BeginlessClosedRange struct {
	End Value // end value
}

Represents a beginless closed range eg. `...2`

func NewBeginlessClosedRange

func NewBeginlessClosedRange(end Value) *BeginlessClosedRange

Create a new beginless closed range class.

func (*BeginlessClosedRange) Class

func (*BeginlessClosedRange) Class() *Class

func (*BeginlessClosedRange) Copy

func (r *BeginlessClosedRange) Copy() Reference

func (*BeginlessClosedRange) DirectClass

func (*BeginlessClosedRange) DirectClass() *Class

func (*BeginlessClosedRange) Error

func (r *BeginlessClosedRange) Error() string

func (*BeginlessClosedRange) Inspect

func (r *BeginlessClosedRange) Inspect() string

func (*BeginlessClosedRange) InstanceVariables

func (r *BeginlessClosedRange) InstanceVariables() *InstanceVariables

func (*BeginlessClosedRange) SingletonClass

func (*BeginlessClosedRange) SingletonClass() *Class

type BeginlessOpenRange

type BeginlessOpenRange struct {
	End Value // end value
}

Represents a beginless open range eg. `..<2`

func NewBeginlessOpenRange

func NewBeginlessOpenRange(end Value) *BeginlessOpenRange

Create a new beginless open range class.

func (*BeginlessOpenRange) Class

func (*BeginlessOpenRange) Class() *Class

func (*BeginlessOpenRange) Copy

func (r *BeginlessOpenRange) Copy() Reference

func (*BeginlessOpenRange) DirectClass

func (*BeginlessOpenRange) DirectClass() *Class

func (*BeginlessOpenRange) Error

func (r *BeginlessOpenRange) Error() string

func (*BeginlessOpenRange) Inspect

func (r *BeginlessOpenRange) Inspect() string

func (*BeginlessOpenRange) InstanceVariables

func (r *BeginlessOpenRange) InstanceVariables() *InstanceVariables

func (*BeginlessOpenRange) SingletonClass

func (*BeginlessOpenRange) SingletonClass() *Class

type BigFloat

type BigFloat big.Float

Elk's BigFloat value

func BigFloatInf

func BigFloatInf() *BigFloat

Create +Inf

func BigFloatNaN

func BigFloatNaN() *BigFloat

Create NaN

func BigFloatNegInf

func BigFloatNegInf() *BigFloat

Create -Inf

func NewBigFloat

func NewBigFloat(f float64) *BigFloat

Create a new BigFloat with the specified value.

func ParseBigFloatPanic

func ParseBigFloatPanic(str string) *BigFloat

Same as ParseBigFloat but panics on error.

func ToElkBigFloat

func ToElkBigFloat(f *big.Float) *BigFloat

Convert Go's big.Float values to Elk's BigFloat values.

func (*BigFloat) AddBigFloat

func (z *BigFloat) AddBigFloat(x, y *BigFloat) *BigFloat

Add sets z to the rounded sum x+y and returns z.

func (*BigFloat) AddVal

func (f *BigFloat) AddVal(other Value) (Value, Value)

AddVal another value and return an error if something went wrong.

func (*BigFloat) AsGoBigFloat

func (f *BigFloat) AsGoBigFloat() *big.Float

Convert Elk's BigFloat values to Go's big.Float values. Does a cast without any checks.

func (*BigFloat) Class

func (*BigFloat) Class() *Class

func (*BigFloat) Cmp

func (x *BigFloat) Cmp(y *BigFloat) int

Cmp compares x and y and returns:

-1 if x <  y
 0 if x == y
+1 if x >  y

Panics if x or y are NaN.

func (*BigFloat) CompareVal

func (f *BigFloat) CompareVal(other Value) (Value, Value)

Returns 1 if i is greater than other Returns 0 if both are equal. Returns -1 if i is less than other. Returns nil if the comparison was impossible (NaN)

func (*BigFloat) Copy

func (f *BigFloat) Copy() Reference

func (*BigFloat) DirectClass

func (*BigFloat) DirectClass() *Class

func (*BigFloat) DivBigFloat

func (z *BigFloat) DivBigFloat(x, y *BigFloat) *BigFloat

Div sets z to the rounded result x/y and returns z.

func (*BigFloat) DivideVal

func (f *BigFloat) DivideVal(other Value) (Value, Value)

DivideVal by another value and return an error if something went wrong.

func (*BigFloat) Equal

func (f *BigFloat) Equal(other Value) bool

Check whether f is equal to other and return an error if something went wrong.

func (*BigFloat) EqualVal

func (f *BigFloat) EqualVal(other Value) Value

Check whether f is equal to other and return an error if something went wrong.

func (*BigFloat) Error

func (f *BigFloat) Error() string

func (*BigFloat) ExpBigFloat

func (z *BigFloat) ExpBigFloat(x, y *BigFloat) *BigFloat

z = x ** y

func (*BigFloat) ExponentiateVal

func (f *BigFloat) ExponentiateVal(other Value) (Value, Value)

ExponentiateVal by another value and return an error if something went wrong.

func (*BigFloat) Float32

func (f *BigFloat) Float32() float32

func (*BigFloat) Float64

func (f *BigFloat) Float64() float64

func (*BigFloat) FloorBigFloat

func (f *BigFloat) FloorBigFloat() *BigFloat

func (*BigFloat) GreaterThan

func (f *BigFloat) GreaterThan(other Value) (bool, Value)

Check whether f is greater than other and return an error if something went wrong.

func (*BigFloat) GreaterThanEqual

func (f *BigFloat) GreaterThanEqual(other Value) (bool, Value)

Check whether f is greater than or equal to other and return an error if something went wrong.

func (*BigFloat) GreaterThanEqualVal

func (f *BigFloat) GreaterThanEqualVal(other Value) (Value, Value)

Check whether f is greater than or equal to other and return an error if something went wrong.

func (*BigFloat) GreaterThanVal

func (f *BigFloat) GreaterThanVal(other Value) (Value, Value)

Check whether f is greater than other and return an error if something went wrong.

func (*BigFloat) Hash

func (f *BigFloat) Hash() UInt64

func (*BigFloat) Inspect

func (f *BigFloat) Inspect() string

func (*BigFloat) InstanceVariables

func (f *BigFloat) InstanceVariables() *InstanceVariables

func (*BigFloat) Int16

func (f *BigFloat) Int16() int16

func (*BigFloat) Int32

func (f *BigFloat) Int32() int32

func (*BigFloat) Int64

func (f *BigFloat) Int64() int64

func (*BigFloat) IsInf

func (f *BigFloat) IsInf(sign int) bool

IsInf reports whether f is an infinity, according to sign. If sign > 0, IsInf reports whether f is positive infinity. If sign < 0, IsInf reports whether f is negative infinity. If sign == 0, IsInf reports whether f is either infinity.

func (*BigFloat) IsNaN

func (f *BigFloat) IsNaN() bool

IsNaN reports whether f is a “not-a-number” value.

func (*BigFloat) IsZero

func (z *BigFloat) IsZero() bool

func (*BigFloat) LaxEqualBool

func (f *BigFloat) LaxEqualBool(other Value) bool

Check whether f is equal to other and return an error if something went wrong.

func (*BigFloat) LaxEqualVal

func (f *BigFloat) LaxEqualVal(other Value) Value

Check whether f is equal to other and return an error if something went wrong.

func (*BigFloat) LessThan

func (f *BigFloat) LessThan(other Value) (bool, Value)

Check whether f is less than other and return an error if something went wrong.

func (*BigFloat) LessThanEqual

func (f *BigFloat) LessThanEqual(other Value) (bool, Value)

Check whether f is less than or equal to other and return an error if something went wrong.

func (*BigFloat) LessThanEqualVal

func (f *BigFloat) LessThanEqualVal(other Value) (Value, Value)

Check whether f is less than or equal to other and return an error if something went wrong.

func (*BigFloat) LessThanVal

func (f *BigFloat) LessThanVal(other Value) (Value, Value)

Check whether f is less than other and return an error if something went wrong.

func (*BigFloat) Mod

func (z *BigFloat) Mod(x, y *BigFloat) *BigFloat

Perform z = a % b by another BigFloat.

Special cases are:

Mod(±Inf, y) = NaN
Mod(NaN, y) = NaN
Mod(x, 0) = NaN
Mod(x, ±Inf) = x
Mod(x, NaN) = NaN

func (*BigFloat) ModuloVal

func (f *BigFloat) ModuloVal(other Value) (Value, Value)

Perform modulo by another numeric value and return an error if something went wrong.

func (*BigFloat) MulBigFloat

func (z *BigFloat) MulBigFloat(x, y *BigFloat) *BigFloat

Mul sets z to the rounded result x*y and returns z.

func (*BigFloat) MultiplyVal

func (f *BigFloat) MultiplyVal(other Value) (Value, Value)

MultiplyVal by another value and return an error if something went wrong.

func (*BigFloat) Negate

func (f *BigFloat) Negate() *BigFloat

Negate the number and return the result.

func (*BigFloat) Precision

func (f *BigFloat) Precision() uint

Gets the f's precision.

func (*BigFloat) Set

func (z *BigFloat) Set(x *BigFloat) *BigFloat

Set z = x

func (*BigFloat) SetBigInt

func (f *BigFloat) SetBigInt(i *BigInt) *BigFloat

Sets f to the value of i.

func (*BigFloat) SetElkFloat32

func (f *BigFloat) SetElkFloat32(x Float32) *BigFloat

Sets f to the possibly rounded value of x.

func (*BigFloat) SetElkFloat64

func (f *BigFloat) SetElkFloat64(x Float64) *BigFloat

Sets f to the possibly rounded value of x.

func (*BigFloat) SetElkInt64

func (f *BigFloat) SetElkInt64(i Int64) *BigFloat

Sets f to the value of i.

func (*BigFloat) SetFloat

func (f *BigFloat) SetFloat(x Float) *BigFloat

Sets f to the possibly rounded value of x.

func (*BigFloat) SetFloat32

func (f *BigFloat) SetFloat32(x float32) *BigFloat

Sets f to the possibly rounded value of x.

func (*BigFloat) SetFloat64

func (f *BigFloat) SetFloat64(x float64) *BigFloat

Sets f to the possibly rounded value of x.

func (*BigFloat) SetInf

func (z *BigFloat) SetInf() *BigFloat

Set z = +Inf

func (*BigFloat) SetInt64

func (f *BigFloat) SetInt64(i int64) *BigFloat

Sets f to the value of i.

func (*BigFloat) SetNaN

func (z *BigFloat) SetNaN() *BigFloat

Set z = NaN

func (*BigFloat) SetNegInf

func (z *BigFloat) SetNegInf() *BigFloat

Set z = -Inf

func (*BigFloat) SetPrecision

func (f *BigFloat) SetPrecision(prec uint) *BigFloat

Sets the f's precision to prec and possibly rounds the value.

func (*BigFloat) SetSmallInt

func (f *BigFloat) SetSmallInt(i SmallInt) *BigFloat

Sets f to the value of i.

func (*BigFloat) SetUInt64

func (f *BigFloat) SetUInt64(i UInt64) *BigFloat

Sets f to the value of i.

func (*BigFloat) SetUint64

func (f *BigFloat) SetUint64(i uint64) *BigFloat

Sets f to the value of i.

func (*BigFloat) Sign

func (f *BigFloat) Sign() int

Sign returns:

-1 if f < 0

0 if f is ±0

+1 if f > 0

func (*BigFloat) SingletonClass

func (*BigFloat) SingletonClass() *Class

func (*BigFloat) StrictEqualVal

func (f *BigFloat) StrictEqualVal(other Value) Value

Check whether f is strictly equal to other and return an error if something went wrong.

func (*BigFloat) SubBigFloat

func (z *BigFloat) SubBigFloat(x, y *BigFloat) *BigFloat

Sub sets z to the rounded result x-y and returns z.

func (*BigFloat) SubtractVal

func (f *BigFloat) SubtractVal(other Value) (Value, Value)

SubtractVal another value and return an error if something went wrong.

func (*BigFloat) ToBigInt

func (f *BigFloat) ToBigInt() *BigInt

Convert to a Float value.

func (*BigFloat) ToFloat

func (f *BigFloat) ToFloat() Float

Convert to a Float value.

func (*BigFloat) ToFloat32

func (f *BigFloat) ToFloat32() Float32

Convert to a Float32 value.

func (*BigFloat) ToFloat64

func (f *BigFloat) ToFloat64() Float64

Convert to a Float64 value.

func (*BigFloat) ToGoBigFloat

func (f *BigFloat) ToGoBigFloat() *big.Float

Convert Elk's BigFloat values to Go's big.Float values. Panics with big.ErrNaN if f is a NaN.

func (*BigFloat) ToInt

func (f *BigFloat) ToInt() Value

Convert to an Int value.

func (*BigFloat) ToInt16

func (f *BigFloat) ToInt16() Int16

Convert to an Int16 value.

func (*BigFloat) ToInt32

func (f *BigFloat) ToInt32() Int32

Convert to an Int32 value.

func (*BigFloat) ToInt64

func (f *BigFloat) ToInt64() Int64

Convert to an Int64 value.

func (*BigFloat) ToInt8

func (f *BigFloat) ToInt8() Int8

Convert to an Int8 value.

func (*BigFloat) ToUInt

func (f *BigFloat) ToUInt() UInt

Convert to an UInt value.

func (*BigFloat) ToUInt16

func (f *BigFloat) ToUInt16() UInt16

Convert to an UInt16 value.

func (*BigFloat) ToUInt32

func (f *BigFloat) ToUInt32() UInt32

Convert to an UInt32 value.

func (*BigFloat) ToUInt64

func (f *BigFloat) ToUInt64() UInt64

Convert to an UInt64 value.

func (*BigFloat) ToUInt8

func (f *BigFloat) ToUInt8() UInt8

Convert to an UInt8 value.

func (*BigFloat) Uint16

func (f *BigFloat) Uint16() uint16

func (*BigFloat) Uint32

func (f *BigFloat) Uint32() uint32

func (*BigFloat) Uint64

func (f *BigFloat) Uint64() uint64

func (*BigFloat) Uint8

func (f *BigFloat) Uint8() uint8

type BigFloatErrNaN

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

A BigFloatErrNaN panic is raised when converting a NaN value from Elk's BigFloat to Go's big.Float. Implements the error interface.

func (BigFloatErrNaN) Error

func (e BigFloatErrNaN) Error() string

type BigInt

type BigInt big.Int

Elk's BigInt value

func NewBigInt

func NewBigInt(i int64) *BigInt

Create a new BigInt with the specified value.

func ParseBigIntPanic

func ParseBigIntPanic(s string, base int) *BigInt

Same as ParseBigInt but panics on error.

func ToElkBigInt

func ToElkBigInt(i *big.Int) *BigInt

Convert Go big.Int value to Elk BigInt value.

func (*BigInt) AddBigFloat

func (i *BigInt) AddBigFloat(other *BigFloat) *BigFloat

func (*BigInt) AddBigInt

func (i *BigInt) AddBigInt(other *BigInt) Value

func (*BigInt) AddFloat

func (i *BigInt) AddFloat(other Float) Float

func (*BigInt) AddSmallInt

func (i *BigInt) AddSmallInt(other SmallInt) Value

func (*BigInt) AddVal

func (i *BigInt) AddVal(other Value) (Value, Value)

AddVal another value and return an error if something went wrong.

func (*BigInt) BitSize

func (i *BigInt) BitSize() int

Number of bits required to represent this integer.

func (*BigInt) BitwiseAndNotVal

func (i *BigInt) BitwiseAndNotVal(other Value) (Value, Value)

Perform bitwise AND NOT with another value and return an error if something went wrong.

func (*BigInt) BitwiseAndVal

func (i *BigInt) BitwiseAndVal(other Value) (Value, Value)

Perform bitwise AND with another value and return an error if something went wrong.

func (*BigInt) BitwiseNot

func (i *BigInt) BitwiseNot() *BigInt

Perform bitwise not on the number and return the result.

func (*BigInt) BitwiseOrVal

func (i *BigInt) BitwiseOrVal(other Value) (Value, Value)

Perform bitwise OR with another value and return an error if something went wrong.

func (*BigInt) BitwiseXorVal

func (i *BigInt) BitwiseXorVal(other Value) (Value, Value)

Perform bitwise XOR with another value and return an error if something went wrong.

func (*BigInt) Centuries

func (i *BigInt) Centuries() DateSpan

func (*BigInt) Class

func (*BigInt) Class() *Class

func (*BigInt) Cmp

func (x *BigInt) Cmp(y *BigInt) int

Cmp compares x and y and returns:

-1 if x <  y
 0 if x == y
+1 if x >  y

func (*BigInt) CompareVal

func (i *BigInt) CompareVal(other Value) (Value, Value)

Returns 1 if i is greater than other Returns 0 if both are equal. Returns -1 if i is less than other. Returns nil if the comparison was impossible (NaN)

func (*BigInt) Copy

func (i *BigInt) Copy() Reference

func (*BigInt) Days

func (i *BigInt) Days() DateSpan

func (*BigInt) DecrementVal

func (i *BigInt) DecrementVal() Value

DecrementVal the number and return the result.

func (*BigInt) DirectClass

func (*BigInt) DirectClass() *Class

func (*BigInt) DivideBigFloat

func (i *BigInt) DivideBigFloat(other *BigFloat) *BigFloat

func (*BigInt) DivideBigInt

func (i *BigInt) DivideBigInt(other *BigInt) (Value, Value)

func (*BigInt) DivideFloat

func (i *BigInt) DivideFloat(other Float) Float

func (*BigInt) DivideSmallInt

func (i *BigInt) DivideSmallInt(other SmallInt) (Value, Value)

func (*BigInt) DivideVal

func (i *BigInt) DivideVal(other Value) (Value, Value)

DivideVal by another value and return an error if something went wrong.

func (*BigInt) Equal

func (i *BigInt) Equal(other Value) bool

Check whether i is equal to other

func (*BigInt) EqualVal

func (i *BigInt) EqualVal(other Value) Value

Check whether i is equal to other

func (*BigInt) Error

func (i *BigInt) Error() string

func (*BigInt) ExponentiateBigFloat

func (i *BigInt) ExponentiateBigFloat(other *BigFloat) *BigFloat

func (*BigInt) ExponentiateBigInt

func (i *BigInt) ExponentiateBigInt(other *BigInt) Value

func (*BigInt) ExponentiateFloat

func (i *BigInt) ExponentiateFloat(other Float) Float

func (*BigInt) ExponentiateSmallInt

func (i *BigInt) ExponentiateSmallInt(other SmallInt) Value

func (*BigInt) ExponentiateVal

func (i *BigInt) ExponentiateVal(other Value) (Value, Value)

ExponentiateVal by another value and return an error if something went wrong.

func (*BigInt) GreaterThan

func (i *BigInt) GreaterThan(other Value) (bool, Value)

Check whether i is greater than other and return an error if something went wrong.

func (*BigInt) GreaterThanEqual

func (i *BigInt) GreaterThanEqual(other Value) (bool, Value)

Check whether i is greater than or equal to other and return an error if something went wrong.

func (*BigInt) GreaterThanEqualVal

func (i *BigInt) GreaterThanEqualVal(other Value) (Value, Value)

Check whether i is greater than or equal to other and return an error if something went wrong.

func (*BigInt) GreaterThanVal

func (i *BigInt) GreaterThanVal(other Value) (Value, Value)

Check whether i is greater than other and return an error if something went wrong.

func (*BigInt) Hash

func (i *BigInt) Hash() UInt64

func (*BigInt) Hours

func (i *BigInt) Hours() TimeSpan

func (*BigInt) Increment

func (i *BigInt) Increment() *BigInt

Increment the number and return the result.

func (*BigInt) Inspect

func (i *BigInt) Inspect() string

func (*BigInt) InstanceVariables

func (i *BigInt) InstanceVariables() *InstanceVariables

func (*BigInt) IsEven

func (i *BigInt) IsEven() bool

func (*BigInt) IsOdd

func (i *BigInt) IsOdd() bool

func (*BigInt) IsSmallInt

func (i *BigInt) IsSmallInt() bool

Reports whether i can be represented as a SmallInt.

func (*BigInt) IsZero

func (i *BigInt) IsZero() bool

Reports whether i is zero.

func (*BigInt) LaxEqualVal

func (i *BigInt) LaxEqualVal(other Value) Value

Check whether i is equal to other (with coercion)

func (*BigInt) LeftBitshiftVal

func (i *BigInt) LeftBitshiftVal(other Value) (Value, Value)

Bitshift to the left by another integer value and return an error if something went wrong.

func (*BigInt) LessThan

func (i *BigInt) LessThan(other Value) (bool, Value)

Check whether i is less than other and return an error if something went wrong.

func (*BigInt) LessThanEqual

func (i *BigInt) LessThanEqual(other Value) (bool, Value)

Check whether i is less than or equal to other and return an error if something went wrong.

func (*BigInt) LessThanEqualVal

func (i *BigInt) LessThanEqualVal(other Value) (Value, Value)

Check whether i is less than or equal to other and return an error if something went wrong.

func (*BigInt) LessThanVal

func (i *BigInt) LessThanVal(other Value) (Value, Value)

Check whether i is less than other and return an error if something went wrong.

func (*BigInt) Microseconds

func (i *BigInt) Microseconds() TimeSpan

func (*BigInt) Millenia

func (i *BigInt) Millenia() DateSpan

func (*BigInt) Milliseconds

func (i *BigInt) Milliseconds() TimeSpan

func (*BigInt) Minutes

func (i *BigInt) Minutes() TimeSpan

func (*BigInt) ModuloBigFloat

func (i *BigInt) ModuloBigFloat(other *BigFloat) *BigFloat

func (*BigInt) ModuloBigInt

func (i *BigInt) ModuloBigInt(other *BigInt) (Value, Value)

func (*BigInt) ModuloFloat

func (i *BigInt) ModuloFloat(other Float) Float

func (*BigInt) ModuloSmallInt

func (i *BigInt) ModuloSmallInt(other SmallInt) (Value, Value)

func (*BigInt) ModuloVal

func (i *BigInt) ModuloVal(other Value) (Value, Value)

Perform modulo with another numeric value and return an error if something went wrong.

func (*BigInt) Months

func (i *BigInt) Months() DateSpan

func (*BigInt) MultiplyBigFloat

func (i *BigInt) MultiplyBigFloat(other *BigFloat) *BigFloat

func (*BigInt) MultiplyBigInt

func (i *BigInt) MultiplyBigInt(other *BigInt) Value

func (*BigInt) MultiplyFloat

func (i *BigInt) MultiplyFloat(other Float) Float

func (*BigInt) MultiplySmallInt

func (i *BigInt) MultiplySmallInt(other SmallInt) Value

func (*BigInt) MultiplyVal

func (i *BigInt) MultiplyVal(other Value) (Value, Value)

MultiplyVal by another value and return an error if something went wrong.

func (*BigInt) Nanoseconds

func (i *BigInt) Nanoseconds() TimeSpan

func (*BigInt) Negate

func (i *BigInt) Negate() *BigInt

Negate the number and return the result.

func (*BigInt) RightBitshiftVal

func (i *BigInt) RightBitshiftVal(other Value) (Value, Value)

Bitshift to the right by another integer value and return an error if something went wrong.

func (*BigInt) Seconds

func (i *BigInt) Seconds() TimeSpan

func (*BigInt) SingletonClass

func (*BigInt) SingletonClass() *Class

func (*BigInt) StrictEqualVal

func (i *BigInt) StrictEqualVal(other Value) Value

Check whether i is strictly equal to other

func (*BigInt) SubtractBigFloat

func (i *BigInt) SubtractBigFloat(other *BigFloat) *BigFloat

func (*BigInt) SubtractBigInt

func (i *BigInt) SubtractBigInt(other *BigInt) Value

func (*BigInt) SubtractFloat

func (i *BigInt) SubtractFloat(other Float) Float

func (*BigInt) SubtractSmallInt

func (i *BigInt) SubtractSmallInt(other SmallInt) Value

func (*BigInt) SubtractVal

func (i *BigInt) SubtractVal(other Value) (Value, Value)

SubtractVal another value and return an error if something went wrong.

func (*BigInt) ToFloat

func (i *BigInt) ToFloat() Float

Returns the Float representation of i.

func (*BigInt) ToFloat32

func (i *BigInt) ToFloat32() Float32

Convert to Elk Float32

func (*BigInt) ToFloat64

func (i *BigInt) ToFloat64() Float64

Convert to Elk Float64

func (*BigInt) ToGoBigInt

func (i *BigInt) ToGoBigInt() *big.Int

Convert the Elk BigInt value to Go big.Int value.

func (*BigInt) ToInt16

func (i *BigInt) ToInt16() Int16

Convert to Elk Int16

func (*BigInt) ToInt32

func (i *BigInt) ToInt32() Int32

Convert to Elk Int32

func (*BigInt) ToInt64

func (i *BigInt) ToInt64() Int64

Convert to Elk Int64

func (*BigInt) ToInt8

func (i *BigInt) ToInt8() Int8

Convert to Elk Int8

func (*BigInt) ToSmallInt

func (i *BigInt) ToSmallInt() SmallInt

Returns the SmallInt representation of i.

func (*BigInt) ToString

func (i *BigInt) ToString() String

Convert the Elk BigInt value to Elk String.

func (*BigInt) ToUInt16

func (i *BigInt) ToUInt16() UInt16

Convert to Elk UInt16

func (*BigInt) ToUInt32

func (i *BigInt) ToUInt32() UInt32

Convert to Elk UInt32

func (*BigInt) ToUInt64

func (i *BigInt) ToUInt64() UInt64

Convert to Elk UInt64

func (*BigInt) ToUInt8

func (i *BigInt) ToUInt8() UInt8

Convert to Elk UInt8

func (*BigInt) Weeks

func (i *BigInt) Weeks() DateSpan

func (*BigInt) Years

func (i *BigInt) Years() DateSpan

type BigIntIterator

type BigIntIterator struct {
	Int     *BigInt
	Counter Value
}

func NewBigIntIterator

func NewBigIntIterator(i *BigInt) *BigIntIterator

func NewBigIntIteratorWithCounter

func NewBigIntIteratorWithCounter(i *BigInt, counter Value) *BigIntIterator

func (*BigIntIterator) Class

func (*BigIntIterator) Class() *Class

func (*BigIntIterator) Copy

func (l *BigIntIterator) Copy() Reference

func (*BigIntIterator) DirectClass

func (*BigIntIterator) DirectClass() *Class

func (*BigIntIterator) Error

func (l *BigIntIterator) Error() string

func (*BigIntIterator) Inspect

func (l *BigIntIterator) Inspect() string

func (*BigIntIterator) InstanceVariables

func (*BigIntIterator) InstanceVariables() *InstanceVariables

func (*BigIntIterator) Next

func (l *BigIntIterator) Next() (Value, Value)

func (*BigIntIterator) Reset

func (l *BigIntIterator) Reset()

func (*BigIntIterator) SingletonClass

func (*BigIntIterator) SingletonClass() *Class

type Box

type Box Value

Box wraps another value, it's a pointer to another `Value`.

func NewBox

func NewBox(v Value) *Box

func (*Box) Class

func (*Box) Class() *Class

func (*Box) Copy

func (b *Box) Copy() Reference

func (*Box) DirectClass

func (*Box) DirectClass() *Class

func (*Box) Error

func (b *Box) Error() string

func (*Box) Get

func (b *Box) Get() Value

Retrieve the value stored in the box

func (*Box) Inspect

func (b *Box) Inspect() string

func (*Box) InstanceVariables

func (*Box) InstanceVariables() *InstanceVariables

func (*Box) Next

func (b *Box) Next(step int) *Box

Return the box of the next value in memory

func (*Box) Prev

func (b *Box) Prev(step int) *Box

Return the box of the previous value in memory

func (*Box) Set

func (b *Box) Set(v Value)

Set the value in the box

func (*Box) SingletonClass

func (*Box) SingletonClass() *Class

func (*Box) ToImmutableBox

func (b *Box) ToImmutableBox() *ImmutableBox

type CallCache

type CallCache struct {
	Entries [3]CallCacheEntry
}

type CallCacheEntry

type CallCacheEntry struct {
	Class  *Class
	Method Method
}

type CallFrame

type CallFrame struct {
	FuncName        string
	FileName        string
	LineNumber      int
	TailCallCounter int
}

func (*CallFrame) Class

func (*CallFrame) Class() *Class

func (*CallFrame) Copy

func (c *CallFrame) Copy() Reference

func (*CallFrame) DirectClass

func (*CallFrame) DirectClass() *Class

func (*CallFrame) Error

func (c *CallFrame) Error() string

func (*CallFrame) Inspect

func (c *CallFrame) Inspect() string

func (*CallFrame) InstanceVariables

func (*CallFrame) InstanceVariables() *InstanceVariables

func (*CallFrame) SingletonClass

func (*CallFrame) SingletonClass() *Class

func (*CallFrame) String

func (c *CallFrame) String() string

type CallSiteInfo

type CallSiteInfo struct {
	Name          Symbol
	ArgumentCount int
	Cache         [3]CallCacheEntry
}

Contains details like the number of arguments or the method name of a particular call site.

func NewCallSiteInfo

func NewCallSiteInfo(methodName Symbol, argCount int) *CallSiteInfo

Create a new CallSiteInfo.

func (*CallSiteInfo) Class

func (*CallSiteInfo) Class() *Class

func (*CallSiteInfo) Copy

func (c *CallSiteInfo) Copy() Reference

func (*CallSiteInfo) DirectClass

func (*CallSiteInfo) DirectClass() *Class

func (*CallSiteInfo) Error

func (c *CallSiteInfo) Error() string

func (*CallSiteInfo) Inspect

func (c *CallSiteInfo) Inspect() string

func (*CallSiteInfo) InstanceVariables

func (*CallSiteInfo) InstanceVariables() *InstanceVariables

func (*CallSiteInfo) SingletonClass

func (*CallSiteInfo) SingletonClass() *Class

type Channel

type Channel struct {
	Native chan Value
}

func NewChannel

func NewChannel(size int) *Channel

func (*Channel) Capacity

func (ch *Channel) Capacity() int

func (*Channel) Class

func (*Channel) Class() *Class

func (*Channel) Close

func (ch *Channel) Close() (err Value)

func (*Channel) Copy

func (ch *Channel) Copy() Reference

func (*Channel) DirectClass

func (*Channel) DirectClass() *Class

func (*Channel) Error

func (ch *Channel) Error() string

func (*Channel) Inspect

func (ch *Channel) Inspect() string

func (*Channel) InstanceVariables

func (*Channel) InstanceVariables() *InstanceVariables

func (*Channel) LeftCapacity

func (ch *Channel) LeftCapacity() int

func (*Channel) Length

func (ch *Channel) Length() int

func (*Channel) Next

func (ch *Channel) Next() (Value, Value)

func (*Channel) Pop

func (ch *Channel) Pop() (Value, bool)

func (*Channel) Push

func (ch *Channel) Push(val Value) (err Value)

func (*Channel) SingletonClass

func (*Channel) SingletonClass() *Class

type Char

type Char rune

Elk's Char value

func (Char) ByteCount

func (c Char) ByteCount() int

Returns the number of bytes present in the character.

func (Char) CharCount

func (Char) CharCount() int

func (Char) Class

func (Char) Class() *Class

func (Char) Cmp

func (x Char) Cmp(y Char) int

Cmp compares x and y and returns:

-1 if x <  y
 0 if x == y
+1 if x >  y

func (Char) CompareVal

func (c Char) CompareVal(other Value) (Value, Value)

Returns 1 if i is greater than other Returns 0 if both are equal. Returns -1 if i is less than other. Returns nil if the comparison was impossible (NaN)

func (Char) Concat

func (c Char) Concat(other Value) (String, Value)

Concatenate another value with this character, creating a new string, and return the result. If the operation is illegal an error will be returned.

func (Char) DirectClass

func (Char) DirectClass() *Class

func (Char) Equal

func (c Char) Equal(other Value) bool

Check whether s is equal to other

func (Char) EqualVal

func (c Char) EqualVal(other Value) Value

Check whether s is equal to other

func (Char) Error

func (c Char) Error() string

func (Char) GraphemeCount

func (Char) GraphemeCount() int

func (Char) GreaterThan

func (c Char) GreaterThan(other Value) (bool, Value)

Check whether c is greater than other and return an error if something went wrong.

func (Char) GreaterThanEqual

func (c Char) GreaterThanEqual(other Value) (bool, Value)

Check whether c is greater than or equal to other and return an error if something went wrong.

func (Char) GreaterThanEqualVal

func (c Char) GreaterThanEqualVal(other Value) (Value, Value)

Check whether c is greater than or equal to other and return an error if something went wrong.

func (Char) GreaterThanVal

func (c Char) GreaterThanVal(other Value) (Value, Value)

Check whether c is greater than other and return an error if something went wrong.

func (Char) Hash

func (c Char) Hash() UInt64

func (Char) Inspect

func (c Char) Inspect() string

func (Char) InstanceVariables

func (Char) InstanceVariables() *InstanceVariables

func (Char) LaxEqualVal

func (c Char) LaxEqualVal(other Value) Value

Check whether c is equal to other

func (Char) LessThan

func (c Char) LessThan(other Value) (bool, Value)

Check whether c is less than other and return an error if something went wrong.

func (Char) LessThanEqual

func (c Char) LessThanEqual(other Value) (bool, Value)

Check whether c is less than or equal to other and return an error if something went wrong.

func (Char) LessThanEqualVal

func (c Char) LessThanEqualVal(other Value) (Value, Value)

Check whether c is less than or equal to other and return an error if something went wrong.

func (Char) LessThanVal

func (c Char) LessThanVal(other Value) (Value, Value)

Check whether c is less than other and return an error if something went wrong.

func (Char) Lowercase

func (c Char) Lowercase() Char

Convert to lowercase

func (Char) Repeat

func (c Char) Repeat(other Value) (String, Value)

Repeat this character n times and return a new string containing the result. If the operation is illegal an error will be returned.

func (Char) Rune

func (c Char) Rune() rune

func (Char) SingletonClass

func (Char) SingletonClass() *Class

func (Char) StrictEqualVal

func (c Char) StrictEqualVal(other Value) Value

Check whether s is strictly equal to other

func (Char) ToValue

func (c Char) ToValue() Value

func (Char) Uppercase

func (c Char) Uppercase() Char

Convert to uppercase

type Class

type Class struct {
	ConstantContainer
	MethodContainer
	ConstructorFunc ConstructorFunc
	Flags           bitfield.BitField8
	IvarIndices     IvarIndices
	// contains filtered or unexported fields
}

Represents an Elk Class.

var AliasDeclarationEntryClass *Class // Std::Elk::AST::AliasDeclarationEntry
var AliasDeclarationNodeClass *Class // Std::Elk::AST::AliasDeclarationNode
var AnyTypeNodeClass *Class // Std::Elk::AST::AnyTypeNode
var ArgumentErrorClass *Class

::Std::ArgumentError

Thrown when the arguments don't match the defined parameters for a given method.

var ArrayListClass *Class

::Std::ArrayList

Represents a dynamically sized array, that can shrink and grow.

var ArrayListIteratorClass *Class

::Std::ArrayList::Iterator

ArrayList iterator class.

var ArrayListLiteralNodeClass *Class // Std::Elk::AST::ArrayListLiteralNode
var ArrayTupleClass *Class

::Std::ArrayTuple

Represents an immutable array.

var ArrayTupleIteratorClass *Class

::Std::ArrayTuple::Iterator

ArrayTuple iterator class.

var ArrayTupleLiteralNodeClass *Class // Std::Elk::AST::ArrayTupleLiteralNode
var AsExpressionNodeClass *Class // Std::Elk::AST::AsExpressionNode
var AsPatternNodeClass *Class // Std::Elk::AST::AsPatternNode
var AssignmentExpressionNodeClass *Class // Std::Elk::AST::AssignmentExpressionNode
var AttrDeclarationNodeClass *Class // Std::Elk::AST::AttrDeclarationNode
var AttributeAccessNodeClass *Class // Std::Elk::AST::AttributeAccessNode
var AttributeParameterNodeClass *Class // Std::Elk::AST::AttributeParameterNode
var AwaitExpressionNodeClass *Class // Std::Elk::AST::AwaitExpressionNode
var BeginlessClosedRangeClass *Class // ::Std::BeginlessClosedRange
var BeginlessOpenRangeClass *Class // ::Std::BeginlessOpenRange
var BigFloatClass *Class // ::Std::BigFloat
var BigFloatLiteralNodeClass *Class // Std::Elk::AST::BigFloatLiteralNode
var BigFloatLiteralNodeFormatErrorClass *Class // Std::Elk::AST::BigFloatLiteralNode::FormatError
var BinArrayListLiteralNodeClass *Class // Std::Elk::AST::BinArrayListLiteralNode
var BinArrayTupleLiteralNodeClass *Class // Std::Elk::AST::BinArrayTupleLiteralNode
var BinHashSetLiteralNodeClass *Class // Std::Elk::AST::BinHashSetLiteralNode
var BinaryExpressionNodeClass *Class // Std::Elk::AST::BinaryExpressionNode
var BinaryPatternNodeClass *Class // Std::Elk::AST::BinaryPatternNode
var BinaryTypeNodeClass *Class // Std::Elk::AST::BinaryTypeNode
var BoolClass *Class // ::Std::Bool
var BoolLiteralNodeClass *Class // Std::Elk::AST::BoolLiteralNode
var BoxClass *Class // ::Std::Box
var BoxOfExpressionNodeClass *Class // Std::Elk::AST::BoxOfExpressionNode
var BoxTypeNodeClass *Class // Std::Elk::AST::BoxTypeNode
var BreakExpressionNodeClass *Class // Std::Elk::AST::BreakExpressionNode
var CallFrameClass *Class // ::Std::CallFrame
var CallNodeClass *Class // Std::Elk::AST::CallNode
var CallableTypeNodeClass *Class // Std::Elk::AST::CallableTypeNode
var CaseNodeClass *Class // Std::Elk::AST::CaseNode
var CatchNodeClass *Class // Std::Elk::AST::CatchNode
var ChannelClass *Class // ::Std::Channel
var ChannelClosedErrorClass *Class // ::Std::Channel::ClosedError
var CharClass *Class

::Std::Char

Represents a single UTF-8 character. Takes up 4 bytes.

var CharLiteralNodeClass *Class // Std::Elk::AST::CharLiteralNode
var ClassClass *Class // ::Std::Class
var ClassDeclarationNodeClass *Class // Std::Elk::AST::ClassDeclarationNode
var ClosedRangeClass *Class // ::Std::ClosedRange
var ClosedRangeIteratorClass *Class

::Std::ClosedRange::Iterator

ClosedRange iterator class.

var ClosureClass *Class // ::Std::Closure
var ClosureLiteralNodeClass *Class // Std::Elk::AST::ClosureLiteralNode
var ColorizerErrorClass *Class

::Std::ColorizerError

var ConstantAsNodeClass *Class // Std::Elk::AST::ConstantAsNode
var ConstantDeclarationNodeClass *Class // Std::Elk::AST::ConstantDeclarationNode
var ConstantLookupNodeClass *Class // Std::Elk::AST::ConstantLookupNode
var ConstantNodeFormatErrorClass *Class // Std::Elk::AST::ConstantNode::FormatError
var ConstructorCallNodeClass *Class // Std::Elk::AST::ConstructorCallNode
var ContinueExpressionNodeClass *Class // Std::Elk::AST::ContinueExpressionNode
var DateClass *Class // ::Std::Date
var DateErrorClass *Class // ::Std::Date::Error
var DateInvalidDayErrorClass *Class // ::Std::Date::InvalidDayError
var DateInvalidMonthErrorClass *Class // ::Std::Date::InvalidMonthError
var DateInvalidYearErrorClass *Class // ::Std::Date::InvalidYearError
var DateSpanClass *Class // ::Std::Date::Span
var DateTimeClass *Class // ::Std::DateTime
var DateTimeSpanClass *Class // ::Std::DateTime::Span
var DiagnosticClass *Class // ::Std::Diagnostic
var DiagnosticListClass *Class // ::Std::DiagnosticList
var DiagnosticListIteratorClass *Class // ::Std::DiagnosticList::Iterator
var DoExpressionNodeClass *Class // Std::Elk::AST::DoExpressionNode
var DoubleQuotedStringLiteralNodeClass *Class // Std::Elk::AST::DoubleQuotedStringLiteralNode
var DoubleSplatExpressionNodeClass *Class // Std::Elk::AST::DoubleSplatExpressionNode
var DurationMixin *Class // ::Std::Duration
var ElkLexerClass *Class // ::Std::Elk::Lexer
var ElkParserClass *Class // ::Std::Elk::Parser
var ElkParserResultClass *Class // ::Std::Elk::Parser::Result
var ElkTokenClass *Class // Std::Elk::Token
var EmptyStatementNodeClass *Class // Std::Elk::AST::EmptyStatementNode
var EndlessClosedRangeClass *Class // ::Std::EndlessClosedRange
var EndlessClosedRangeIteratorClass *Class

::Std::EndlessClosedRange::Iterator

EndlessClosedRange iterator class.

var EndlessOpenRangeClass *Class // ::Std::EndlessOpenRange
var EndlessOpenRangeIteratorClass *Class

::Std::EndlessOpenRange::Iterator

EndlessOpenRange iterator class.

var ErrorClass *Class

::Std::Error

Parent class for all exceptions.

var ExpressionStatementNodeClass *Class // Std::Elk::AST::ExpressionStatementNode
var ExtendWhereBlockExpressionNodeClass *Class // Std::Elk::AST::ExtendWhereBlockExpressionNode
var FalseClass *Class // ::Std::False
var FalseLiteralNodeClass *Class // Std::Elk::AST::FalseLiteralNode
var FileSystemErrorClass *Class

::Std::FileSystemError

var Float32Class *Class // ::Std::Float32
var Float32LiteralNodeClass *Class // Std::Elk::AST::Float32LiteralNode
var Float32LiteralNodeFormatErrorClass *Class // Std::Elk::AST::Float32LiteralNode::FormatError
var Float64Class *Class // ::Std::Float64
var Float64LiteralNodeClass *Class // Std::Elk::AST::Float64LiteralNode
var Float64LiteralNodeFormatErrorClass *Class // Std::Elk::AST::Float64LiteralNode::FormatError
var FloatClass *Class // ::Std::Float
var FloatLiteralNodeClass *Class // Std::Elk::AST::FloatLiteralNode
var FloatLiteralNodeFormatErrorClass *Class // Std::Elk::AST::FloatLiteralNode::FormatError
var ForInExpressionNodeClass *Class // Std::Elk::AST::ForInExpressionNode
var FormalParameterNodeClass *Class // Std::Elk::AST::FormalParameterNode
var FormatErrorClass *Class

::Std::FormatError

Thrown when a literal or interpreted string has an incorrect format.

var FunctionClass *Class // ::Std::Function
var GeneratorClass *Class // ::Std::Generator
var GenericConstantNodeClass *Class // Std::Elk::AST::GenericConstantNode
var GenericConstructorCallNodeClass *Class // Std::Elk::AST::GenericConstructorCallNode
var GenericMethodCallNodeClass *Class // Std::Elk::AST::GenericMethodCallNode
var GenericReceiverlessMethodCallNodeClass *Class // Std::Elk::AST::GenericReceiverlessMethodCallNode
var GenericTypeDefinitionNodeClass *Class // Std::Elk::AST::GenericTypeDefinitionNode
var GetterDeclarationNodeClass *Class // Std::Elk::AST::GetterDeclarationNode
var GlobErrorClass *Class

::Std::GlobError

Thrown when an invalid glob has been encountered.

var GlobalObjectSingletonClass *Class
var GoExpressionNodeClass *Class // Std::Elk::AST::GoExpressionNode
var HashMapClass *Class // ::Std::HashMap
var HashMapIteratorClass *Class // ::Std::HashMap::Iterator
var HashMapLiteralNodeClass *Class // Std::Elk::AST::HashMapLiteralNode
var HashRecordClass *Class // ::Std::HashRecord
var HashRecordIteratorClass *Class // ::Std::HashRecord::Iterator
var HashRecordLiteralNodeClass *Class // Std::Elk::AST::HashRecordLiteralNode
var HashSetClass *Class // ::Std::HashSet
var HashSetIteratorClass *Class // ::Std::HashSet::Iterator
var HashSetLiteralNodeClass *Class // Std::Elk::AST::HashSetLiteralNode
var HexArrayListLiteralNodeClass *Class // Std::Elk::AST::HexArrayListLiteralNode
var HexArrayTupleLiteralNodeClass *Class // Std::Elk::AST::HexArrayTupleLiteralNode
var HexHashSetLiteralNodeClass *Class // Std::Elk::AST::HexHashSetLiteralNode
var IdentifierNodeFormatErrorClass *Class // Std::Elk::AST::IdentifierNode::FormatError
var IfExpressionNodeClass *Class // Std::Elk::AST::IfExpressionNode
var ImmutableBoxClass *Class // ::Std::ImmutableBox
var ImplementExpressionNodeClass *Class // Std::Elk::AST::ImplementExpressionNode
var ImportStatementNodeClass *Class // Std::Elk::AST::ImportStatementNode
var IncludeExpressionNodeClass *Class // Std::Elk::AST::IncludeExpressionNode
var IndexErrorClass *Class

::Std::IndexError

Thrown when the index is invalid.

var InitDefinitionNodeClass *Class // Std::Elk::AST::InitDefinitionNode
var InstanceMethodLookupNodeClass *Class // Std::Elk::AST::InstanceMethodLookupNode
var InstanceOfTypeNodeClass *Class // Std::Elk::AST::InstanceOfTypeNode
var InstanceVariableDeclarationNodeClass *Class // Std::Elk::AST::InstanceVariableDeclarationNode
var Int16Class *Class // ::Std::Int16
var Int16LiteralNodeClass *Class // Std::Elk::AST::Int16LiteralNode
var Int16LiteralNodeFormatErrorClass *Class // Std::Elk::AST::Int16LiteralNode::FormatError
var Int32Class *Class // ::Std::Int32
var Int32LiteralNodeClass *Class // Std::Elk::AST::Int32LiteralNode
var Int32LiteralNodeFormatErrorClass *Class // Std::Elk::AST::Int32LiteralNode::FormatError
var Int64Class *Class // ::Std::Int64
var Int64LiteralNodeClass *Class // Std::Elk::AST::Int64LiteralNode
var Int64LiteralNodeFormatErrorClass *Class // Std::Elk::AST::Int64LiteralNode::FormatError
var Int8Class *Class // ::Std::Int8
var Int8LiteralNodeClass *Class // Std::Elk::AST::Int8LiteralNode
var Int8LiteralNodeFormatErrorClass *Class // Std::Elk::AST::Int8LiteralNode::FormatError
var IntClass *Class // ::Std::Int
var IntIteratorClass *Class // ::Std::Int::Iterator
var IntLiteralNodeClass *Class // Std::Elk::AST::IntLiteralNode
var IntLiteralNodeFormatErrorClass *Class // Std::Elk::AST::IntLiteralNode::FormatError
var InterfaceClass *Class // ::Std::Interface
var InterfaceDeclarationNodeClass *Class // Std::Elk::AST::InterfaceDeclarationNode
var InterpolatedRegexLiteralNodeClass *Class // Std::Elk::AST::InterpolatedRegexLiteralNode
var InterpolatedStringLiteralNodeClass *Class // Std::Elk::AST::InterpolatedStringLiteralNode
var InterpolatedSymbolLiteralNodeClass *Class // Std::Elk::AST::InterpolatedSymbolLiteralNode
var IntersectionTypeNodeClass *Class // Std::Elk::AST::IntersectionTypeNode
var InvalidNodeClass *Class // Std::Elk::AST::InvalidNode
var InvalidTimezoneErrorClass *Class

::Std::InvalidTimezoneError

Thrown when a timezone wasn't found.

var IterableNotFoundError *Class

::Std::Iterable::NotFoundError

var KeyValueExpressionNodeClass *Class // Std::Elk::AST::KeyValueExpressionNode
var KeyValuePatternNodeClass *Class // Std::Elk::AST::KeyValuePatternNode
var LabeledExpressionNodeClass *Class // Std::Elk::AST::LabeledExpressionNode
var LeftOpenRangeClass *Class // ::Std::LeftOpenRange
var LeftOpenRangeIteratorClass *Class

::Std::LeftOpenRange::Iterator

LeftOpenRange iterator class.

var ListPatternNodeClass *Class // Std::Elk::AST::ListPatternNode
var LocalBoxClass *Class // ::Std::LocalBox
var LocationClass *Class // Std::FS::Location
var LogicalExpressionNodeClass *Class // Std::Elk::AST::LogicalExpressionNode
var LoopExpressionNodeClass *Class // Std::Elk::AST::LoopExpressionNode
var MacroBoundaryNodeClass *Class // Std::Elk::AST::MacroBoundaryNode
var MacroCallNodeClass *Class // Std::Elk::AST::MacroCallNode
var MacroDefinitionNodeClass *Class // Std::Elk::AST::MacroDefinitionNode
var MacroNameNodeClass *Class // Std::Elk::AST::MacroNameNode
var MapPatternNodeClass *Class // Std::Elk::AST::MapPatternNode
var MatchExpressionNodeClass *Class // Std::Elk::AST::MatchExpressionNode
var MethodCallNodeClass *Class // Std::Elk::AST::MethodCallNode
var MethodClass *Class // ::Std::Method
var MethodDefinitionNodeClass *Class // Std::Elk::AST::MethodDefinitionNode
var MethodLookupAsNodeClass *Class // Std::Elk::AST::MethodLookupAsNode
var MethodLookupNodeClass *Class // Std::Elk::AST::MethodLookupNode
var MethodParameterNodeClass *Class // Std::Elk::AST::MethodParameterNode
var MethodSignatureDefinitionNodeClass *Class // Std::Elk::AST::MethodSignatureDefinitionNode
var MixinClass *Class // ::Std::Mixin
var MixinDeclarationNodeClass *Class // Std::Elk::AST::MixinDeclarationNode
var ModifierForInNodeClass *Class // Std::Elk::AST::ModifierForInNode
var ModifierIfElseNodeClass *Class // Std::Elk::AST::ModifierIfElseNode
var ModifierMismatchErrorClass *Class

::Std::ModifierMismatchError

Thrown when a class was originally defined with some modifiers and later on reopened with different ones.

var ModifierNodeClass *Class // Std::Elk::AST::ModifierNode
var ModuleClass *Class // ::Std::Module
var ModuleDeclarationNodeClass *Class // Std::Elk::AST::ModuleDeclarationNode
var MustExpressionNodeClass *Class // Std::Elk::AST::MustExpressionNode
var MutexClass *Class // ::Std::Sync::Mutex
var MutexUnlockedErrorClass *Class // ::Std::Sync::Mutex::UnlockedError
var NamedCallArgumentNodeClass *Class // Std::Elk::AST::NamedCallArgumentNode
var NeverTypeNodeClass *Class // Std::Elk::AST::NeverTypeNode
var NewExpressionNodeClass *Class // Std::Elk::AST::NewExpressionNode
var NilClass *Class // ::Std::Nil
var NilLiteralNodeClass *Class // Std::Elk::AST::NilLiteralNode
var NilSafeSubscriptExpressionNodeClass *Class // Std::Elk::AST::NilSafeSubscriptExpressionNode
var NilableTypeNodeClass *Class // Std::Elk::AST::NilableTypeNode
var NoConstantErrorClass *Class

::Std::NoConstantError

Thrown after trying to read a nonexistent constant.

var NoMethodErrorClass *Class

::Std::NoMethodError

Thrown after attempting to call a method that is not available to the value.

var NodeFormatErrorClass *Class // Std::Elk::AST::Node::FormatError
var NotBuiltinErrorClass *Class

::Std::NotBuiltinError

Thrown when the called method is not builtin.

var NotTypeNodeClass *Class // Std::Elk::AST::NotTypeNode
var NumericForExpressionNodeClass *Class // Std::Elk::AST::NumericForExpressionNode
var ObjectClass *Class // ::Std::Object
var ObjectPatternNodeClass *Class // Std::Elk::AST::ObjectPatternNode
var OnceClass *Class // ::Std::Sync::Once
var OpenClosureErrorClass *Class

::Std::OpenClosureError

Thrown when another thread tried to execute an open closure.

var OpenRangeClass *Class // ::Std::OpenRange
var OpenRangeIteratorClass *Class

::Std::OpenRange::Iterator

OpenRange iterator class.

var OutOfRangeErrorClass *Class

::Std::OutOfRangeError

Thrown when a numeric value is too large or too small to be used in a particular setting.

var PairClass *Class // ::Std::Pair
var PairIteratorClass *Class

::Std::Pair::Iterator

Pair iterator class.

var ParameterStatementNodeClass *Class // Std::Elk::AST::ParameterStatementNode
var PathClass *Class // ::Std::FS::Path
var PathErrorClass *Class

::Std::FS::Path::Error

Thrown when an error is encountered when working with paths.

var PatternExpressionNodeClass *Class // Std::Elk::AST::PatternExpressionNode
var PatternNotMatchedErrorClass *Class

::Std::PatternNotMatchedError

Thrown when a pattern was not matched in destructuring etc

var PatternStatementNodeClass *Class // Std::Elk::AST::PatternStatementNode
var PositionClass *Class // Std::String::Position
var PostfixExpressionNodeClass *Class // Std::Elk::AST::PostfixExpressionNode
var PrimitiveValueErrorClass *Class

::Std::PrimitiveValueError

Thrown when trying to access or set instance variables on a primitive object that cannot have instance variables.

var PrivateConstantNodeClass *Class // Std::Elk::AST::PrivateConstantNode
var PrivateConstantNodeFormatErrorClass *Class // Std::Elk::AST::PrivateConstantNode::FormatError
var PrivateIdentifierNodeClass *Class // Std::Elk::AST::PrivateIdentifierNode
var PrivateIdentifierNodeFormatErrorClass *Class // Std::Elk::AST::PrivateIdentifierNode::FormatError
var ProgramNodeClass *Class // Std::Elk::AST::ProgramNode
var PromiseClass *Class // ::Std::Promise
var PublicConstantAsNodeClass *Class // Std::Elk::AST::PublicConstantAsNode
var PublicConstantNodeClass *Class // Std::Elk::AST::PublicConstantNode
var PublicIdentifierNodeClass *Class // Std::Elk::AST::PublicIdentifierNode
var PublicInstanceVariableNodeClass *Class // Std::Elk::AST::PublicInstanceVariableNode
var QuoteExpressionNodeClass *Class // Std::Elk::AST::QuoteExpressionNode
var ROMutexClass *Class // ::Std::Sync::ROMutex
var RWMutexClass *Class // ::Std::Sync::RWMutex
var RWMutexUnlockedErrorClass *Class // ::Std::Sync::RWMutex::UnlockedError
var RangeLiteralNodeClass *Class // Std::Elk::AST::RangeLiteralNode
var RawCharLiteralNodeClass *Class // Std::Elk::AST::RawCharLiteralNode
var RawStringLiteralNodeClass *Class // Std::Elk::AST::RawStringLiteralNode
var ReceiverlessMacroCallNodeClass *Class // Std::Elk::AST::ReceiverlessMacroCallNode
var ReceiverlessMethodCallNodeClass *Class // Std::Elk::AST::ReceiverlessMethodCallNode
var RecordPatternNodeClass *Class // Std::Elk::AST::RecordPatternNode
var RedefinedConstantErrorClass *Class

::Std::RedefinedConstantError

Thrown after trying to redefine a constant.

var RegexClass *Class // ::Std::Regex
var RegexCompileErrorClass *Class

::Std::RegexCompileError

Thrown when a Regex could not be compiled.

var RegexInterpolationNodeClass *Class // Std::Elk::AST::RegexInterpolationNode
var RegexLiteralContentSectionNodeClass *Class // Std::Elk::AST::RegexLiteralContentSection
var RestPatternNodeClass *Class // Std::Elk::AST::RestPatternNode
var ResultClass *Class // ::Std::Result
var ReturnExpressionNodeClass *Class // Std::Elk::AST::ReturnExpressionNode
var RightOpenRangeClass *Class // ::Std::RightOpenRange
var RightOpenRangeIteratorClass *Class

::Std::RightOpenRange::Iterator

RightOpenRange iterator class.

var ScopedMacroCallNodeClass *Class // Std::Elk::AST::ScopedMacroCallNode
var SealedClassErrorClass *Class

::Std::SealedClassError

Thrown when trying to inherit from a sealed class.

var SelfLiteralNodeClass *Class // Std::Elk::AST::SelfLiteralNode
var SetPatternNodeClass *Class // Std::Elk::AST::SetPatternNode
var SetterDeclarationNodeClass *Class // Std::Elk::AST::SetterDeclarationNode
var SignatureParameterNodeClass *Class // Std::Elk::AST::SignatureParameterNode
var SimpleSymbolLiteralNodeClass *Class // Std::Elk::AST::SimpleSymbolLiteralNode
var SingletonBlockExpressionNodeClass *Class // Std::Elk::AST::SingletonBlockExpressionNode
var SingletonTypeNodeClass *Class // Std::Elk::AST::SingletonTypeNode
var SpanClass *Class // Std::String::Span
var SplatExpressionNodeClass *Class // Std::Elk::AST::SplatExpressionNode
var StackTraceClass *Class // ::Std::StackTrace
var StackTraceIteratorClass *Class // ::Std::StackTrace::Iterator
var StringByteIteratorClass *Class // ::Std::String::ByteIterator
var StringCharIteratorClass *Class // ::Std::String::CharIterator
var StringClass *Class // ::Std::String
var StringGraphemeIteratorClass *Class // ::Std::String::GraphemeIterator
var StringInspectInterpolationNodeClass *Class // Std::Elk::AST::StringInspectInterpolationNode
var StringInterpolationNodeClass *Class // Std::Elk::AST::StringInterpolationNode
var StringLiteralContentSectionNodeClass *Class // Std::Elk::AST::StringLiteralContentSectionNode
var StructDeclarationNodeClass *Class // Std::Elk::AST::StructDeclarationNode
var SubscriptExpressionNodeClass *Class // Std::Elk::AST::SubscriptExpressionNode
var SwitchExpressionNodeClass *Class // Std::Elk::AST::SwitchExpressionNode
var SymbolArrayListLiteralNodeClass *Class // Std::Elk::AST::SymbolArrayListLiteralNode
var SymbolArrayTupleLiteralNodeClass *Class // Std::Elk::AST::SymbolArrayTupleLiteralNode
var SymbolClass *Class // ::Std::Symbol
var SymbolHashSetLiteralNodeClass *Class // Std::Elk::AST::SymbolHashSetLiteralNode
var SymbolKeyValueExpressionNodeClass *Class // Std::Elk::AST::SymbolKeyValueExpressionNode
var SymbolKeyValuePatternNodeClass *Class // Std::Elk::AST::SymbolKeyValuePatternNode
var SymbolMapClass *Class // ::Std::SymbolMap
var SyncDiagnosticListClass *Class // ::Std::Sync::DiagnosticList
var SyncDiagnosticListIteratorClass *Class // ::Std::Sync::DiagnosticList::Iterator
var ThreadClass *Class // ::Std::Thread
var ThreadPoolClass *Class // ::Std::ThreadPool
var ThrowExpressionNodeClass *Class // Std::Elk::AST::ThrowExpressionNode
var TimeClass *Class // ::Std::Time
var TimeSpanClass *Class // ::Std::Time::Span
var TimezoneClass *Class // ::Std::Timezone
var TrueClass *Class // ::Std::True
var TrueLiteralNodeClass *Class // Std::Elk::AST::TrueLiteralNode
var TryExpressionNodeClass *Class // Std::Elk::AST::TryExpressionNode
var TuplePatternNodeClass *Class // Std::Elk::AST::TuplePatternNode
var TypeDefinitionNodeClass *Class // Std::Elk::AST::TypeDefinitionNode
var TypeErrorClass *Class

::Std::TypeError

Thrown when an argument given to a method has an incorrect type.

var TypeExpressionNodeClass *Class // Std::Elk::AST::TypeExpressionNode
var TypeStatementNodeClass *Class // Std::Elk::AST::TypeStatementNode
var TypeofExpressionNodeClass *Class // Std::Elk::AST::TypeofExpressionNode
var UInt16Class *Class // ::Std::UInt16
var UInt16LiteralNodeClass *Class // Std::Elk::AST::UInt16LiteralNode
var UInt16LiteralNodeFormatErrorClass *Class // Std::Elk::AST::UInt16LiteralNode::FormatError
var UInt32Class *Class // ::Std::UInt32
var UInt32LiteralNodeClass *Class // Std::Elk::AST::UInt32LiteralNode
var UInt32LiteralNodeFormatErrorClass *Class // Std::Elk::AST::UInt32LiteralNode::FormatError
var UInt64Class *Class // ::Std::UInt64
var UInt64LiteralNodeClass *Class // Std::Elk::AST::UInt64LiteralNode
var UInt64LiteralNodeFormatErrorClass *Class // Std::Elk::AST::UInt64LiteralNode::FormatError
var UInt8Class *Class // ::Std::UInt8
var UInt8LiteralNodeClass *Class // Std::Elk::AST::UInt8LiteralNode
var UInt8LiteralNodeFormatErrorClass *Class // Std::Elk::AST::UInt8LiteralNode::FormatError
var UIntClass *Class // ::Std::UInt
var UIntLiteralNodeClass *Class // Std::Elk::AST::UIntLiteralNode
var UIntLiteralNodeFormatErrorClass *Class // Std::Elk::AST::UIntLiteralNode::FormatError
var UnaryExpressionNodeClass *Class // Std::Elk::AST::UnaryExpressionNode
var UnaryTypeNodeClass *Class // Std::Elk::AST::UnaryTypeNode
var UndefinedClass *Class
var UndefinedLiteralNodeClass *Class // Std::Elk::AST::UndefinedLiteralNode
var UnexpectedNilErrorClass *Class

::Std::UnexpectedNilError

Thrown when a `nil` value is encountered in a `must` expression.

var UnhygienicNodeClass *Class // Std::Elk::AST::UnhygienicNode
var UninterpolatedRegexLiteralNodeClass *Class // Std::Elk::AST::UninterpolatedRegexLiteralNode
var UnionTypeNodeClass *Class // Std::Elk::AST::UnionTypeNode
var UnlessExpressionNodeClass *Class // Std::Elk::AST::UnlessExpressionNode
var UnquoteNodeClass *Class // Std::Elk::AST::UnquoteNode
var UntilExpressionNodeClass *Class // Std::Elk::AST::UntilExpressionNode
var UsingAllEntryNodeClass *Class // Std::Elk::AST::UsingAllEntryNode
var UsingEntryWithSubentriesNodeClass *Class // Std::Elk::AST::UsingEntryWithSubentriesNode
var UsingExpressionNodeClass *Class // Std::Elk::AST::UsingExpressionNode
var UsingSubentryAsNodeClass *Class // Std::Elk::AST::UsingSubentryAsNode
var ValueClass *Class // ::Std::Value
var ValueDeclarationNodeClass *Class // Std::Elk::AST::ValueDeclarationNode
var ValuePatternDeclarationNodeClass *Class // Std::Elk::AST::ValuePatternDeclarationNode
var VariableDeclarationNodeClass *Class // Std::Elk::AST::VariableDeclarationNode
var VariablePatternDeclarationNodeClass *Class // Std::Elk::AST::VariablePatternDeclarationNode
var VariantTypeParameterNodeClass *Class // Std::Elk::AST::VariantTypeParameterNode
var VoidTypeNodeClass *Class // Std::Elk::AST::VoidTypeNode
var WaitGroupClass *Class // ::Std::Sync::WaitGroup
var WeakClass *Class // ::Std::Weak
var WhileExpressionNodeClass *Class // Std::Elk::AST::WhileExpressionNode
var WordArrayListLiteralNodeClass *Class // Std::Elk::AST::WordArrayListLiteralNode
var WordArrayTupleLiteralNodeClass *Class // Std::Elk::AST::WordArrayTupleLiteralNode
var WordHashSetLiteralNodeClass *Class // Std::Elk::AST::WordHashSetLiteralNode
var YieldExpressionNodeClass *Class // Std::Elk::AST::YieldExpressionNode
var ZeroDivisionErrorClass *Class

::Std::ZeroDivisionError

Thrown when an integer is divided by zero.

func NewClass

func NewClass() *Class

Create a new class.

func NewClassWithOptions

func NewClassWithOptions(opts ...ClassOption) *Class

Create a new class.

func NewMixinWithOptions

func NewMixinWithOptions(opts ...MixinOption) *Class

Create a new mixin.

func NewSingletonClass

func NewSingletonClass(originalClass *Class, originalName string) *Class

func (*Class) Class

func (c *Class) Class() *Class

func (*Class) Copy

func (c *Class) Copy() Reference

func (*Class) CreateInstance

func (c *Class) CreateInstance() Value

Create a new instance of the class without initialising it.

func (*Class) DirectClass

func (c *Class) DirectClass() *Class

func (*Class) Doc

func (c *Class) Doc() Value

func (*Class) Error

func (c *Class) Error() string

func (*Class) GetIvarName

func (c *Class) GetIvarName(ivarIndex int) (Symbol, bool)

func (*Class) IncludeMixin

func (c *Class) IncludeMixin(mixin *Mixin)

Include the passed in mixin in this class.

func (*Class) Inspect

func (c *Class) Inspect() string

func (*Class) InspectInheritance

func (c *Class) InspectInheritance() string

func (*Class) InspectParents

func (c *Class) InspectParents() string

func (*Class) InstanceVariables

func (c *Class) InstanceVariables() *InstanceVariables

func (*Class) IsMixin

func (c *Class) IsMixin() bool

func (*Class) IsMixinProxy

func (c *Class) IsMixinProxy() bool

func (*Class) IsSingleton

func (c *Class) IsSingleton() bool

func (*Class) Parents

func (c *Class) Parents() iter.Seq[*Class]

Iterates over every parent of the class/mixin (including itself)

func (*Class) SetDirectClass

func (c *Class) SetDirectClass(metaClass *Class)

func (*Class) SetDoc

func (c *Class) SetDoc(doc String)

func (*Class) SetMixin

func (c *Class) SetMixin()

func (*Class) SetMixinProxy

func (c *Class) SetMixinProxy()

func (*Class) SetSingleton

func (c *Class) SetSingleton()

func (*Class) SetSingletonName

func (c *Class) SetSingletonName(name string)

func (*Class) SetSuperclass

func (c *Class) SetSuperclass(superclass *Class)

func (*Class) SingletonClass

func (c *Class) SingletonClass() *Class

type ClassOption

type ClassOption = func(*Class)

Class constructor option function

func ClassWithConstants

func ClassWithConstants(constants SymbolMap) ClassOption

func ClassWithConstructor

func ClassWithConstructor(constructor ConstructorFunc) ClassOption

func ClassWithDefinedIvars

func ClassWithDefinedIvars(names []Symbol) ClassOption

func ClassWithIvarIndices

func ClassWithIvarIndices(ivarIndices IvarIndices) ClassOption

func ClassWithMetaClass

func ClassWithMetaClass(metaClass *Class) ClassOption

func ClassWithMethods

func ClassWithMethods(methods MethodMap) ClassOption

func ClassWithMixin

func ClassWithMixin() ClassOption

func ClassWithMixinProxy

func ClassWithMixinProxy() ClassOption

func ClassWithName

func ClassWithName(name string) ClassOption

func ClassWithSingleton

func ClassWithSingleton() ClassOption

func ClassWithSuperclass

func ClassWithSuperclass(parent *Class) ClassOption

type ClosedRange

type ClosedRange struct {
	Start Value // start value
	End   Value // end value
}

Represents a closed range eg. `5...2`

func NewClosedRange

func NewClosedRange(start, end Value) *ClosedRange

Create a new closed range class.

func (*ClosedRange) Class

func (*ClosedRange) Class() *Class

func (*ClosedRange) Copy

func (r *ClosedRange) Copy() Reference

func (*ClosedRange) DirectClass

func (*ClosedRange) DirectClass() *Class

func (*ClosedRange) Error

func (r *ClosedRange) Error() string

func (*ClosedRange) Inspect

func (r *ClosedRange) Inspect() string

func (*ClosedRange) InstanceVariables

func (r *ClosedRange) InstanceVariables() *InstanceVariables

func (*ClosedRange) SingletonClass

func (*ClosedRange) SingletonClass() *Class

type ClosedRangeIterator

type ClosedRangeIterator struct {
	Range          *ClosedRange
	CurrentElement Value
}

func NewClosedRangeIterator

func NewClosedRangeIterator(r *ClosedRange) *ClosedRangeIterator

func NewClosedRangeIteratorWithCurrentElement

func NewClosedRangeIteratorWithCurrentElement(r *ClosedRange, currentElement Value) *ClosedRangeIterator

func (*ClosedRangeIterator) Class

func (*ClosedRangeIterator) Class() *Class

func (*ClosedRangeIterator) Copy

func (r *ClosedRangeIterator) Copy() Reference

func (*ClosedRangeIterator) DirectClass

func (*ClosedRangeIterator) DirectClass() *Class

func (*ClosedRangeIterator) Error

func (r *ClosedRangeIterator) Error() string

func (*ClosedRangeIterator) Inspect

func (r *ClosedRangeIterator) Inspect() string

func (*ClosedRangeIterator) InstanceVariables

func (*ClosedRangeIterator) InstanceVariables() *InstanceVariables

func (*ClosedRangeIterator) Reset

func (r *ClosedRangeIterator) Reset()

func (*ClosedRangeIterator) SingletonClass

func (*ClosedRangeIterator) SingletonClass() *Class

type ConstantContainer

type ConstantContainer struct {
	Name      string
	Constants SymbolMap
}

Struct for embedding, contains fields shared by Module, Mixin, Class, Struct

func (*ConstantContainer) AddConstant

func (m *ConstantContainer) AddConstant(name Symbol, val Value)

Set the constant with the specified name to the given value.

func (*ConstantContainer) AddConstantString

func (m *ConstantContainer) AddConstantString(name string, val Value)

Set the constant with the specified name to the given value.

func (*ConstantContainer) PrintableName

func (m *ConstantContainer) PrintableName() string

Return a human readable name.

type ConstructorFunc

type ConstructorFunc func(class *Class) Value

Function that creates a new instance.

type Date

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

Represents a calendar date (year, month, day). It is an inline value on both 32bit and 64bit systems. The year range is from `-4_194_304` to `4_194_303`

func DateNow

func DateNow() Date

func MakeDate

func MakeDate(year, month, day int) Date

Make a new date

func MakeDateNormalize

func MakeDateNormalize(year, month, day int) Date

func (Date) AbbreviatedMonthName

func (d Date) AbbreviatedMonthName() string

func (Date) AbbreviatedWeekdayName

func (d Date) AbbreviatedWeekdayName() string

func (Date) AddDateSpan

func (d Date) AddDateSpan(val DateSpan) Date

func (Date) AddDateTimeSpan

func (d Date) AddDateTimeSpan(val *DateTimeSpan) *DateTime

func (Date) AddTimeSpan

func (d Date) AddTimeSpan(val TimeSpan) *DateTime

func (Date) Century

func (d Date) Century() int

func (Date) Class

func (Date) Class() *Class

func (Date) Cmp

func (d Date) Cmp(other Date) int

func (Date) CompareVal

func (d Date) CompareVal(other Value) (Value, Value)

func (Date) Day

func (d Date) Day() int

func (Date) Diff

func (d Date) Diff(val Value) (Value, Value)

func (Date) DiffDate

func (d Date) DiffDate(val Date) DateSpan

Calculates the difference between two date values. Returns a span.

func (Date) DiffDateTime

func (d Date) DiffDateTime(val *DateTime) *DateTimeSpan

Calculates the difference between this date and a datetime values. Returns a span.

func (Date) DirectClass

func (Date) DirectClass() *Class

func (Date) Equal

func (d Date) Equal(other Value) bool

func (Date) Error

func (d Date) Error() string

func (Date) Format

func (d Date) Format(formatString string) (_ string, err Value)

Create a string formatted according to the given format string.

func (Date) GreaterThan

func (d Date) GreaterThan(other Value) (bool, Value)

func (Date) GreaterThanEqual

func (d Date) GreaterThanEqual(other Value) (bool, Value)

func (Date) ISOWeek

func (d Date) ISOWeek() int

func (Date) ISOYear

func (d Date) ISOYear() int

func (Date) ISOYearDay

func (d Date) ISOYearDay() int

func (Date) ISOYearLastTwo

func (d Date) ISOYearLastTwo() int

func (Date) Inspect

func (d Date) Inspect() string

func (Date) InstanceVariables

func (Date) InstanceVariables() *InstanceVariables

func (Date) IsFriday

func (d Date) IsFriday() bool

func (Date) IsMonday

func (d Date) IsMonday() bool

func (Date) IsSaturday

func (d Date) IsSaturday() bool

func (Date) IsSunday

func (d Date) IsSunday() bool

func (Date) IsThursday

func (d Date) IsThursday() bool

func (Date) IsTuesday

func (d Date) IsTuesday() bool

func (Date) IsWednesday

func (d Date) IsWednesday() bool

func (Date) LessThan

func (d Date) LessThan(other Value) (bool, Value)

func (Date) LessThanEqual

func (d Date) LessThanEqual(other Value) (bool, Value)

func (Date) Millenium

func (d Date) Millenium() int

func (Date) Month

func (d Date) Month() int

func (Date) MonthName

func (d Date) MonthName() string

func (Date) MustFormat

func (d Date) MustFormat(formatString string) string

func (Date) Normalize

func (d Date) Normalize() Date

func (*Date) SetDay

func (d *Date) SetDay(v int)

func (*Date) SetMonth

func (d *Date) SetMonth(v int)

func (*Date) SetYear

func (d *Date) SetYear(v int)

func (Date) SingletonClass

func (Date) SingletonClass() *Class

func (Date) String

func (d Date) String() string

func (Date) Subtract

func (d Date) Subtract(val Value) (Value, Value)

func (Date) SubtractDateSpan

func (d Date) SubtractDateSpan(val DateSpan) Date

Subtracts the given date span from the date.

func (Date) SubtractDateTimeSpan

func (d Date) SubtractDateTimeSpan(val *DateTimeSpan) *DateTime

Subtracts the given datetime span from the date.

func (Date) SubtractTimeSpan

func (d Date) SubtractTimeSpan(val TimeSpan) *DateTime

Subtracts the given time span from the date.

func (Date) ToDateSpan

func (d Date) ToDateSpan() DateSpan

func (Date) ToDateTime

func (d Date) ToDateTime() *DateTime

func (Date) ToDateTimeSpan

func (d Date) ToDateTimeSpan() *DateTimeSpan

func (Date) ToDateTimeValue

func (d Date) ToDateTimeValue() DateTime

func (Date) ToGoTime

func (d Date) ToGoTime() time.Time

func (Date) ToString

func (d Date) ToString() String

func (Date) ToValue

func (d Date) ToValue() Value

func (Date) WeekFromMonday

func (d Date) WeekFromMonday() int

The week number of the current year as a decimal number, range 00 to 53, starting with the first Monday as the first day of week 01.

func (Date) WeekFromSunday

func (d Date) WeekFromSunday() int

The week number of the current year as a decimal number, range 00 to 53, starting with the first Sunday as the first day of week 01.

func (Date) WeekdayFromMonday

func (d Date) WeekdayFromMonday() int

Specifies the day of the week (Monday = 1, ...).

func (Date) WeekdayFromSunday

func (d Date) WeekdayFromSunday() int

Specifies the day of the week (Sunday = 0, ...).

func (Date) WeekdayName

func (d Date) WeekdayName() string

func (Date) Year

func (d Date) Year() int

func (Date) YearDay

func (d Date) YearDay() int

Day of the year.

func (Date) YearLastTwo

func (d Date) YearLastTwo() int

type DateSpan

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

Represents the difference between two dates as a 32 bit number of months and 32 bit number of days. Can store up to 2 billion days and 2 billion months (178 million years).

func MakeDateSpan

func MakeDateSpan(years, months, days int) DateSpan

func (DateSpan) Add

func (d DateSpan) Add(other Value) (Value, Value)

func (DateSpan) AddDateSpan

func (d DateSpan) AddDateSpan(other DateSpan) DateSpan

func (DateSpan) AddDateTimeSpan

func (d DateSpan) AddDateTimeSpan(other *DateTimeSpan) *DateTimeSpan

func (DateSpan) AddTimeSpan

func (d DateSpan) AddTimeSpan(other TimeSpan) *DateTimeSpan

func (DateSpan) Class

func (DateSpan) Class() *Class

func (DateSpan) Cmp

func (x DateSpan) Cmp(y DateSpan) int

func (DateSpan) CompareVal

func (d DateSpan) CompareVal(other Value) (Value, Value)

func (DateSpan) Copy

func (d DateSpan) Copy() Reference

func (DateSpan) Days

func (d DateSpan) Days() int

func (DateSpan) DirectClass

func (DateSpan) DirectClass() *Class

func (DateSpan) Divide

func (d DateSpan) Divide(other Value) (Value, Value)

func (DateSpan) DivideBigFloat

func (d DateSpan) DivideBigFloat(other *BigFloat) *DateTimeSpan

func (DateSpan) DivideBigInt

func (d DateSpan) DivideBigInt(other *BigInt) *DateTimeSpan

func (DateSpan) DivideFloat

func (d DateSpan) DivideFloat(other Float) *DateTimeSpan

func (DateSpan) DivideInt

func (d DateSpan) DivideInt(other Value) *DateTimeSpan

func (DateSpan) DivideSmallInt

func (d DateSpan) DivideSmallInt(other SmallInt) *DateTimeSpan

func (DateSpan) Equal

func (d DateSpan) Equal(other Value) bool

func (DateSpan) Error

func (d DateSpan) Error() string

func (DateSpan) GreaterThan

func (d DateSpan) GreaterThan(other Value) (result bool, err Value)

Check whether d is greater than other and return an error if something went wrong.

func (DateSpan) GreaterThanEqual

func (d DateSpan) GreaterThanEqual(other Value) (result bool, err Value)

Check whether d is greater than or equal to other and return an error if something went wrong.

func (DateSpan) GreaterThanEqualVal

func (d DateSpan) GreaterThanEqualVal(other Value) (Value, Value)

func (DateSpan) GreaterThanVal

func (d DateSpan) GreaterThanVal(other Value) (Value, Value)

func (DateSpan) InDays

func (d DateSpan) InDays() Float

func (DateSpan) InDaysBigFloat

func (d DateSpan) InDaysBigFloat() *BigFloat

func (DateSpan) InHours

func (d DateSpan) InHours() Float

func (DateSpan) InMicroseconds

func (d DateSpan) InMicroseconds() Float

func (DateSpan) InMilliseconds

func (d DateSpan) InMilliseconds() Float

func (DateSpan) InMinutes

func (d DateSpan) InMinutes() Float

func (DateSpan) InMonths

func (d DateSpan) InMonths() Float

func (DateSpan) InNanoseconds

func (d DateSpan) InNanoseconds() Float

func (DateSpan) InSeconds

func (d DateSpan) InSeconds() Float

func (DateSpan) InWeeks

func (d DateSpan) InWeeks() Float

func (DateSpan) InYears

func (d DateSpan) InYears() Float

func (DateSpan) Inspect

func (d DateSpan) Inspect() string

func (DateSpan) InstanceVariables

func (DateSpan) InstanceVariables() *InstanceVariables

func (DateSpan) IsZero

func (d DateSpan) IsZero() bool

func (DateSpan) LessThan

func (d DateSpan) LessThan(other Value) (result bool, err Value)

Check whether d is less than other and return an error if something went wrong.

func (DateSpan) LessThanEqual

func (d DateSpan) LessThanEqual(other Value) (result bool, err Value)

Check whether d is less than or equal to other and return an error if something went wrong.

func (DateSpan) LessThanVal

func (d DateSpan) LessThanVal(other Value) (Value, Value)

func (DateSpan) Months

func (d DateSpan) Months() int

func (DateSpan) Multiply

func (d DateSpan) Multiply(other Value) (Value, Value)

func (DateSpan) MultiplyBigFloat

func (d DateSpan) MultiplyBigFloat(other *BigFloat) *DateTimeSpan

func (DateSpan) MultiplyBigInt

func (d DateSpan) MultiplyBigInt(other *BigInt) DateSpan

func (DateSpan) MultiplyFloat

func (d DateSpan) MultiplyFloat(other Float) *DateTimeSpan

func (DateSpan) MultiplyInt

func (d DateSpan) MultiplyInt(other Value) DateSpan

func (DateSpan) MultiplySmallInt

func (d DateSpan) MultiplySmallInt(other SmallInt) DateSpan

func (DateSpan) Negate

func (d DateSpan) Negate() DateSpan

func (DateSpan) SingletonClass

func (DateSpan) SingletonClass() *Class

func (DateSpan) String

func (d DateSpan) String() string

func (DateSpan) Subtract

func (d DateSpan) Subtract(other Value) (Value, Value)

func (DateSpan) SubtractDateSpan

func (d DateSpan) SubtractDateSpan(other DateSpan) DateSpan

func (DateSpan) SubtractDateTimeSpan

func (d DateSpan) SubtractDateTimeSpan(other *DateTimeSpan) *DateTimeSpan

func (DateSpan) SubtractTimeSpan

func (d DateSpan) SubtractTimeSpan(other TimeSpan) *DateTimeSpan

func (DateSpan) ToDate

func (d DateSpan) ToDate() Date

func (DateSpan) ToDateTimeSpan

func (d DateSpan) ToDateTimeSpan() *DateTimeSpan

func (DateSpan) ToString

func (d DateSpan) ToString() String

func (DateSpan) ToValue

func (d DateSpan) ToValue() Value

func (DateSpan) TotalDays

func (d DateSpan) TotalDays() Value

func (DateSpan) TotalHours

func (d DateSpan) TotalHours() Value

func (DateSpan) TotalMicroseconds

func (d DateSpan) TotalMicroseconds() Value

func (DateSpan) TotalMilliseconds

func (d DateSpan) TotalMilliseconds() Value

func (DateSpan) TotalMinutes

func (d DateSpan) TotalMinutes() Value

func (DateSpan) TotalMonths

func (d DateSpan) TotalMonths() Value

func (DateSpan) TotalNanoseconds

func (d DateSpan) TotalNanoseconds() Value

func (DateSpan) TotalSeconds

func (d DateSpan) TotalSeconds() Value

func (DateSpan) TotalWeeks

func (d DateSpan) TotalWeeks() Value

func (DateSpan) TotalYears

func (d DateSpan) TotalYears() Value

func (DateSpan) Years

func (d DateSpan) Years() int

type DateTime

type DateTime struct {
	Go time.Time
}

Elk's DateTime value

func DateTimeNow

func DateTimeNow() *DateTime

func MakeDateTime

func MakeDateTime(year, month, day, hour, min, sec, millisec, microsec, nsec int, zone *Timezone) DateTime

Create a new DateTime value.

func MakeDateTimeFromDateAndTime

func MakeDateTimeFromDateAndTime(date Date, time Time, zone *Timezone) DateTime

func MakeZeroDateTime

func MakeZeroDateTime() DateTime

func NewDateTime

func NewDateTime(year, month, day, hour, min, sec, millisec, microsec, nsec int, zone *Timezone) *DateTime

Create a new DateTime object.

func ToElkDateTime

func ToElkDateTime(time time.Time) *DateTime

func ToElkDateTimeValue

func ToElkDateTimeValue(time time.Time) DateTime

func (DateTime) AbbreviatedMonthName

func (t DateTime) AbbreviatedMonthName() string

func (DateTime) AbbreviatedWeekdayName

func (t DateTime) AbbreviatedWeekdayName() string

func (*DateTime) Add

func (t *DateTime) Add(val Value) (Value, Value)

func (*DateTime) AddDateSpan

func (t *DateTime) AddDateSpan(val DateSpan) *DateTime

func (*DateTime) AddDateTimeSpan

func (t *DateTime) AddDateTimeSpan(val *DateTimeSpan) *DateTime

func (*DateTime) AddTimeSpan

func (t *DateTime) AddTimeSpan(val TimeSpan) *DateTime

func (DateTime) AttosecondsInSecond

func (t DateTime) AttosecondsInSecond() int64

func (DateTime) Century

func (t DateTime) Century() int

func (DateTime) Class

func (DateTime) Class() *Class

func (*DateTime) Cmp

func (x *DateTime) Cmp(y *DateTime) int

Cmp compares x and y and returns:

  -1 if x <  y
	 0 if x == y
  +1 if x >  y

func (*DateTime) CompareVal

func (d *DateTime) CompareVal(other Value) (Value, Value)

func (*DateTime) Copy

func (t *DateTime) Copy() Reference

func (*DateTime) Date

func (t *DateTime) Date() Date

func (DateTime) Day

func (t DateTime) Day() int

func (*DateTime) Diff

func (t *DateTime) Diff(val Value) (Value, Value)

func (*DateTime) DiffDate

func (t *DateTime) DiffDate(val Date) *DateTimeSpan

Calculates the difference between two datetime objects. Returns a span.

func (*DateTime) DiffDateTime

func (t *DateTime) DiffDateTime(val *DateTime) *DateTimeSpan

Calculates the difference between two datetime objects. Returns a span.

func (DateTime) DirectClass

func (DateTime) DirectClass() *Class

func (*DateTime) Equal

func (t *DateTime) Equal(other Value) bool

Check whether t is equal to other and return an error if something went wrong.

func (DateTime) Error

func (t DateTime) Error() string

func (DateTime) FemtosecondsInSecond

func (t DateTime) FemtosecondsInSecond() int64

func (DateTime) Format

func (t DateTime) Format(formatString string) (_ string, err Value)

Create a string formatted according to the given format string.

func (*DateTime) GreaterThan

func (t *DateTime) GreaterThan(other Value) (result bool, err Value)

Check whether t is greater than other and return an error if something went wrong.

func (*DateTime) GreaterThanEqual

func (t *DateTime) GreaterThanEqual(other Value) (result bool, err Value)

Check whether t is greater than or equal to other and return an error if something went wrong.

func (*DateTime) GreaterThanEqualVal

func (t *DateTime) GreaterThanEqualVal(other Value) (Value, Value)

func (*DateTime) GreaterThanVal

func (t *DateTime) GreaterThanVal(other Value) (Value, Value)

func (DateTime) Hour

func (t DateTime) Hour() int

Hour in a 24 hour clock.

func (DateTime) Hour12

func (t DateTime) Hour12() int

Hour in a twelve hour clock.

func (DateTime) ISOWeek

func (t DateTime) ISOWeek() int

func (DateTime) ISOYear

func (t DateTime) ISOYear() int

func (DateTime) ISOYearDay

func (t DateTime) ISOYearDay() int

Day of the ISO year.

func (DateTime) ISOYearLastTwo

func (t DateTime) ISOYearLastTwo() int

func (*DateTime) InZone

func (t *DateTime) InZone(zone *Timezone) *DateTime

func (DateTime) Inspect

func (t DateTime) Inspect() string

func (DateTime) InstanceVariables

func (t DateTime) InstanceVariables() *InstanceVariables

func (DateTime) IsAM

func (t DateTime) IsAM() bool

Whether the current hour is AM.

func (DateTime) IsFriday

func (t DateTime) IsFriday() bool

func (DateTime) IsLocal

func (t DateTime) IsLocal() bool

func (DateTime) IsMonday

func (t DateTime) IsMonday() bool

func (DateTime) IsPM

func (t DateTime) IsPM() bool

Whether the current hour is PM.

func (DateTime) IsSaturday

func (t DateTime) IsSaturday() bool

func (DateTime) IsSunday

func (t DateTime) IsSunday() bool

func (DateTime) IsThursday

func (t DateTime) IsThursday() bool

func (DateTime) IsTuesday

func (t DateTime) IsTuesday() bool

func (DateTime) IsUTC

func (t DateTime) IsUTC() bool

func (DateTime) IsWednesday

func (t DateTime) IsWednesday() bool

func (*DateTime) LaxEqual

func (t *DateTime) LaxEqual(other Value) bool

func (*DateTime) LessThan

func (t *DateTime) LessThan(other Value) (result bool, err Value)

Check whether t is less than other and return an error if something went wrong.

func (*DateTime) LessThanEqual

func (t *DateTime) LessThanEqual(other Value) (result bool, err Value)

Check whether t is less than or equal to other and return an error if something went wrong.

func (*DateTime) LessThanEqualVal

func (t *DateTime) LessThanEqualVal(other Value) (Value, Value)

func (*DateTime) LessThanVal

func (t *DateTime) LessThanVal(other Value) (Value, Value)

func (*DateTime) Local

func (t *DateTime) Local() *DateTime

Convert the time to the local timezone.

func (DateTime) Meridiem

func (t DateTime) Meridiem() string

func (DateTime) MeridiemLowercase

func (t DateTime) MeridiemLowercase() string

func (DateTime) Microsecond

func (t DateTime) Microsecond() int

func (DateTime) MicrosecondsInSecond

func (t DateTime) MicrosecondsInSecond() int

func (DateTime) Millenium

func (t DateTime) Millenium() int

func (DateTime) Millisecond

func (t DateTime) Millisecond() int

func (DateTime) Minute

func (t DateTime) Minute() int

func (DateTime) Month

func (t DateTime) Month() int

func (DateTime) MonthName

func (t DateTime) MonthName() string

func (DateTime) MustFormat

func (t DateTime) MustFormat(formatString string) string

func (DateTime) Nanosecond

func (t DateTime) Nanosecond() int

func (DateTime) NanosecondsInSecond

func (t DateTime) NanosecondsInSecond() int

func (DateTime) PicosecondsInSecond

func (t DateTime) PicosecondsInSecond() int64

func (DateTime) Second

func (t DateTime) Second() int

func (DateTime) SingletonClass

func (DateTime) SingletonClass() *Class

func (*DateTime) StrictEqual

func (t *DateTime) StrictEqual(other Value) bool

func (DateTime) String

func (t DateTime) String() string

func (*DateTime) Subtract

func (t *DateTime) Subtract(val Value) (Value, Value)

func (*DateTime) SubtractDateSpan

func (t *DateTime) SubtractDateSpan(val DateSpan) *DateTime

func (*DateTime) SubtractDateTimeSpan

func (t *DateTime) SubtractDateTimeSpan(val *DateTimeSpan) *DateTime

func (*DateTime) SubtractTimeSpan

func (t *DateTime) SubtractTimeSpan(val TimeSpan) *DateTime

func (*DateTime) Time

func (t *DateTime) Time() Time

func (*DateTime) ToDate

func (t *DateTime) ToDate() Date

func (DateTime) ToDateTimeSpan

func (t DateTime) ToDateTimeSpan() *DateTimeSpan

func (DateTime) ToGoTime

func (t DateTime) ToGoTime() time.Time

func (DateTime) ToString

func (t DateTime) ToString() String

func (*DateTime) UTC

func (t *DateTime) UTC() *DateTime

Convert the time to the UTC zone.

func (DateTime) UnixAttoseconds

func (t DateTime) UnixAttoseconds() *big.Int

func (DateTime) UnixFemtoseconds

func (t DateTime) UnixFemtoseconds() *big.Int

func (DateTime) UnixMicroseconds

func (t DateTime) UnixMicroseconds() *big.Int

func (DateTime) UnixMilliseconds

func (t DateTime) UnixMilliseconds() int64

func (DateTime) UnixNanoseconds

func (t DateTime) UnixNanoseconds() *big.Int

func (DateTime) UnixPicoseconds

func (t DateTime) UnixPicoseconds() *big.Int

func (DateTime) UnixSeconds

func (t DateTime) UnixSeconds() int64

func (DateTime) UnixYoctoseconds

func (t DateTime) UnixYoctoseconds() *big.Int

func (DateTime) UnixZeptoseconds

func (t DateTime) UnixZeptoseconds() *big.Int

func (DateTime) WeekFromMonday

func (t DateTime) WeekFromMonday() int

The week number of the current year as a decimal number, range 00 to 53, starting with the first Monday as the first day of week 01.

func (DateTime) WeekFromSunday

func (t DateTime) WeekFromSunday() int

The week number of the current year as a decimal number, range 00 to 53, starting with the first Sunday as the first day of week 01.

func (DateTime) WeekdayFromMonday

func (t DateTime) WeekdayFromMonday() int

Specifies the day of the week (Monday = 1, ...).

func (DateTime) WeekdayFromSunday

func (t DateTime) WeekdayFromSunday() int

Specifies the day of the week (Sunday = 0, ...).

func (DateTime) WeekdayName

func (t DateTime) WeekdayName() string

func (*DateTime) WithZone

func (t *DateTime) WithZone(zone *Timezone) *DateTime

func (DateTime) Year

func (t DateTime) Year() int

func (DateTime) YearDay

func (t DateTime) YearDay() int

Day of the year.

func (DateTime) YearLastTwo

func (t DateTime) YearLastTwo() int

func (DateTime) YoctosecondsInSecond

func (t DateTime) YoctosecondsInSecond() *big.Int

func (DateTime) ZeptosecondsInSecond

func (t DateTime) ZeptosecondsInSecond() *big.Int

func (DateTime) Zone

func (t DateTime) Zone() *Timezone

func (DateTime) ZoneAbbreviatedName

func (t DateTime) ZoneAbbreviatedName() string

func (DateTime) ZoneName

func (t DateTime) ZoneName() string

func (DateTime) ZoneOffset

func (t DateTime) ZoneOffset() TimeSpan

func (DateTime) ZoneOffsetHourMinutes

func (t DateTime) ZoneOffsetHourMinutes() int

func (DateTime) ZoneOffsetHours

func (t DateTime) ZoneOffsetHours() int

func (DateTime) ZoneOffsetSeconds

func (t DateTime) ZoneOffsetSeconds() int

type DateTimeSpan

type DateTimeSpan struct {
	DateSpan DateSpan
	TimeSpan TimeSpan
}

Represents the difference between two datetimes. It is made up of a `Date::Span` and a `Time::Span`

func NewDateTimeSpan

func NewDateTimeSpan(datespan DateSpan, timespan TimeSpan) *DateTimeSpan

func (*DateTimeSpan) Add

func (d *DateTimeSpan) Add(other Value) (Value, Value)

func (*DateTimeSpan) AddDateSpan

func (d *DateTimeSpan) AddDateSpan(other DateSpan) *DateTimeSpan

func (*DateTimeSpan) AddDateTimeSpan

func (d *DateTimeSpan) AddDateTimeSpan(other *DateTimeSpan) *DateTimeSpan

func (*DateTimeSpan) AddMutDateTimeSpan

func (d *DateTimeSpan) AddMutDateTimeSpan(other *DateTimeSpan) *DateTimeSpan

func (*DateTimeSpan) AddMutTimeSpan

func (d *DateTimeSpan) AddMutTimeSpan(other TimeSpan) *DateTimeSpan

func (*DateTimeSpan) AddTimeSpan

func (d *DateTimeSpan) AddTimeSpan(other TimeSpan) *DateTimeSpan

func (*DateTimeSpan) Class

func (*DateTimeSpan) Class() *Class

func (*DateTimeSpan) Cmp

func (x *DateTimeSpan) Cmp(y *DateTimeSpan) int

func (*DateTimeSpan) CompareVal

func (d *DateTimeSpan) CompareVal(other Value) (Value, Value)

func (*DateTimeSpan) Copy

func (d *DateTimeSpan) Copy() Reference

func (*DateTimeSpan) Days

func (d *DateTimeSpan) Days() int

func (*DateTimeSpan) DirectClass

func (*DateTimeSpan) DirectClass() *Class

func (*DateTimeSpan) Divide

func (d *DateTimeSpan) Divide(other Value) (Value, Value)

func (*DateTimeSpan) DivideBigFloat

func (d *DateTimeSpan) DivideBigFloat(other *BigFloat) *DateTimeSpan

func (*DateTimeSpan) DivideBigInt

func (d *DateTimeSpan) DivideBigInt(other *BigInt) *DateTimeSpan

func (*DateTimeSpan) DivideFloat

func (d *DateTimeSpan) DivideFloat(other Float) *DateTimeSpan

func (*DateTimeSpan) DivideInt

func (d *DateTimeSpan) DivideInt(other Value) *DateTimeSpan

func (*DateTimeSpan) DivideSmallInt

func (d *DateTimeSpan) DivideSmallInt(other SmallInt) *DateTimeSpan

func (*DateTimeSpan) Dup

func (d *DateTimeSpan) Dup() *DateTimeSpan

func (*DateTimeSpan) Equal

func (d *DateTimeSpan) Equal(other Value) bool

func (*DateTimeSpan) Error

func (d *DateTimeSpan) Error() string

func (*DateTimeSpan) GreaterThan

func (d *DateTimeSpan) GreaterThan(other Value) (result bool, err Value)

Check whether d is greater than other and return an error if something went wrong.

func (*DateTimeSpan) GreaterThanEqual

func (d *DateTimeSpan) GreaterThanEqual(other Value) (result bool, err Value)

Check whether d is greater than or equal to other and return an error if something went wrong.

func (*DateTimeSpan) GreaterThanEqualVal

func (d *DateTimeSpan) GreaterThanEqualVal(other Value) (Value, Value)

func (*DateTimeSpan) GreaterThanVal

func (d *DateTimeSpan) GreaterThanVal(other Value) (Value, Value)

func (*DateTimeSpan) Hours

func (d *DateTimeSpan) Hours() int

func (*DateTimeSpan) InDays

func (d *DateTimeSpan) InDays() Float

func (*DateTimeSpan) InHours

func (d *DateTimeSpan) InHours() Float

func (*DateTimeSpan) InMicroseconds

func (d *DateTimeSpan) InMicroseconds() Float

func (*DateTimeSpan) InMilliseconds

func (d *DateTimeSpan) InMilliseconds() Float

func (*DateTimeSpan) InMinutes

func (d *DateTimeSpan) InMinutes() Float

func (*DateTimeSpan) InMonths

func (d *DateTimeSpan) InMonths() Float

func (*DateTimeSpan) InNanoseconds

func (d *DateTimeSpan) InNanoseconds() Float

func (*DateTimeSpan) InSeconds

func (d *DateTimeSpan) InSeconds() Float

func (*DateTimeSpan) InWeeks

func (d *DateTimeSpan) InWeeks() Float

func (*DateTimeSpan) InYears

func (d *DateTimeSpan) InYears() Float

func (*DateTimeSpan) Inspect

func (d *DateTimeSpan) Inspect() string

func (*DateTimeSpan) InstanceVariables

func (*DateTimeSpan) InstanceVariables() *InstanceVariables

func (*DateTimeSpan) IsZero

func (d *DateTimeSpan) IsZero() bool

func (*DateTimeSpan) LessThan

func (d *DateTimeSpan) LessThan(other Value) (result bool, err Value)

Check whether d is less than other and return an error if something went wrong.

func (*DateTimeSpan) LessThanEqual

func (d *DateTimeSpan) LessThanEqual(other Value) (result bool, err Value)

Check whether d is less than or equal to other and return an error if something went wrong.

func (*DateTimeSpan) LessThanVal

func (d *DateTimeSpan) LessThanVal(other Value) (Value, Value)

func (*DateTimeSpan) Microseconds

func (d *DateTimeSpan) Microseconds() int

func (*DateTimeSpan) Milliseconds

func (d *DateTimeSpan) Milliseconds() int

func (*DateTimeSpan) Minutes

func (d *DateTimeSpan) Minutes() int

func (*DateTimeSpan) Months

func (d *DateTimeSpan) Months() int

func (*DateTimeSpan) Multiply

func (d *DateTimeSpan) Multiply(other Value) (Value, Value)

func (*DateTimeSpan) MultiplyBigFloat

func (d *DateTimeSpan) MultiplyBigFloat(other *BigFloat) *DateTimeSpan

func (*DateTimeSpan) MultiplyBigInt

func (d *DateTimeSpan) MultiplyBigInt(other *BigInt) *DateTimeSpan

func (*DateTimeSpan) MultiplyFloat

func (d *DateTimeSpan) MultiplyFloat(other Float) *DateTimeSpan

func (*DateTimeSpan) MultiplyInt

func (d *DateTimeSpan) MultiplyInt(other Value) *DateTimeSpan

func (*DateTimeSpan) MultiplySmallInt

func (d *DateTimeSpan) MultiplySmallInt(other SmallInt) *DateTimeSpan

func (*DateTimeSpan) Nanoseconds

func (d *DateTimeSpan) Nanoseconds() int

func (*DateTimeSpan) Negate

func (d *DateTimeSpan) Negate() *DateTimeSpan

func (*DateTimeSpan) Normalise

func (d *DateTimeSpan) Normalise()

func (*DateTimeSpan) Seconds

func (d *DateTimeSpan) Seconds() int

func (*DateTimeSpan) SingletonClass

func (*DateTimeSpan) SingletonClass() *Class

func (*DateTimeSpan) String

func (d *DateTimeSpan) String() string

func (*DateTimeSpan) Subtract

func (d *DateTimeSpan) Subtract(other Value) (Value, Value)

func (*DateTimeSpan) SubtractDateSpan

func (d *DateTimeSpan) SubtractDateSpan(other DateSpan) *DateTimeSpan

func (*DateTimeSpan) SubtractDateTimeSpan

func (d *DateTimeSpan) SubtractDateTimeSpan(other *DateTimeSpan) *DateTimeSpan

func (*DateTimeSpan) SubtractTimeSpan

func (d *DateTimeSpan) SubtractTimeSpan(other TimeSpan) *DateTimeSpan

func (*DateTimeSpan) ToDateTime

func (d *DateTimeSpan) ToDateTime() *DateTime

func (*DateTimeSpan) ToDateTimeWithZone

func (d *DateTimeSpan) ToDateTimeWithZone(zone *Timezone) *DateTime

func (*DateTimeSpan) ToString

func (d *DateTimeSpan) ToString() String

func (*DateTimeSpan) TotalDays

func (d *DateTimeSpan) TotalDays() Value

func (*DateTimeSpan) TotalHours

func (d *DateTimeSpan) TotalHours() Value

func (*DateTimeSpan) TotalMicroseconds

func (d *DateTimeSpan) TotalMicroseconds() Value

func (*DateTimeSpan) TotalMilliseconds

func (d *DateTimeSpan) TotalMilliseconds() Value

func (*DateTimeSpan) TotalMinutes

func (d *DateTimeSpan) TotalMinutes() Value

func (*DateTimeSpan) TotalMonths

func (d *DateTimeSpan) TotalMonths() Value

func (*DateTimeSpan) TotalNanoseconds

func (d *DateTimeSpan) TotalNanoseconds() Value

func (*DateTimeSpan) TotalSeconds

func (d *DateTimeSpan) TotalSeconds() Value

func (*DateTimeSpan) TotalWeeks

func (d *DateTimeSpan) TotalWeeks() Value

func (*DateTimeSpan) TotalYears

func (d *DateTimeSpan) TotalYears() Value

func (*DateTimeSpan) Years

func (d *DateTimeSpan) Years() int

type Diagnostic

type Diagnostic diagnostic.Diagnostic

func (*Diagnostic) Class

func (*Diagnostic) Class() *Class

func (*Diagnostic) Copy

func (d *Diagnostic) Copy() Reference

func (*Diagnostic) DirectClass

func (*Diagnostic) DirectClass() *Class

func (*Diagnostic) Error

func (d *Diagnostic) Error() string

func (*Diagnostic) Inspect

func (d *Diagnostic) Inspect() string

func (*Diagnostic) InstanceVariables

func (*Diagnostic) InstanceVariables() *InstanceVariables

func (*Diagnostic) SingletonClass

func (*Diagnostic) SingletonClass() *Class

type DiagnosticList

type DiagnosticList diagnostic.DiagnosticList

func (*DiagnosticList) Append

func (dl *DiagnosticList) Append(elements ...*Diagnostic)

Add new elements.

func (*DiagnosticList) At

func (dl *DiagnosticList) At(i int) *Diagnostic

Get an element under the given index without bounds checking

func (*DiagnosticList) Capacity

func (dl *DiagnosticList) Capacity() int

func (*DiagnosticList) Class

func (*DiagnosticList) Class() *Class

func (*DiagnosticList) Concat

func (l *DiagnosticList) Concat(other Value) (*ArrayList, Value)

Concatenate another value with this list, creating a new list, and return the result. If the operation is illegal an error will be returned.

func (*DiagnosticList) Copy

func (d *DiagnosticList) Copy() Reference

func (*DiagnosticList) DirectClass

func (*DiagnosticList) DirectClass() *Class

func (*DiagnosticList) Error

func (d *DiagnosticList) Error() string

func (*DiagnosticList) Get

func (dl *DiagnosticList) Get(index int) (Value, Value)

Get an element under the given index.

func (*DiagnosticList) Grow

func (dl *DiagnosticList) Grow(newSlots int)

Expand the array list to have empty slots for new elements.

func (*DiagnosticList) Inspect

func (d *DiagnosticList) Inspect() string

func (*DiagnosticList) InstanceVariables

func (*DiagnosticList) InstanceVariables() *InstanceVariables

func (*DiagnosticList) LeftCapacity

func (l *DiagnosticList) LeftCapacity() int

func (*DiagnosticList) Length

func (dl *DiagnosticList) Length() int

func (*DiagnosticList) Repeat

func (l *DiagnosticList) Repeat(other Value) (*DiagnosticList, Value)

Repeat the content of this list n times and return a new list containing the result. If the operation is illegal an error will be returned.

func (*DiagnosticList) Set

func (l *DiagnosticList) Set(index int, val *Diagnostic) Value

Set an element under the given index.

func (*DiagnosticList) SetAt

func (l *DiagnosticList) SetAt(index int, val *Diagnostic)

Set an element under the given index without bounds checking.

func (*DiagnosticList) SingletonClass

func (*DiagnosticList) SingletonClass() *Class

func (*DiagnosticList) Subscript

func (dl *DiagnosticList) Subscript(key Value) (Value, Value)

Get an element under the given index.

func (*DiagnosticList) SubscriptSet

func (dl *DiagnosticList) SubscriptSet(key Value, val *Diagnostic) Value

Set an element under the given index.

type DiagnosticListIterator

type DiagnosticListIterator struct {
	DiagnosticList *DiagnosticList
	Index          int
}

func NewDiagnosticListIterator

func NewDiagnosticListIterator(list *DiagnosticList) *DiagnosticListIterator

func NewDiagnosticListIteratorWithIndex

func NewDiagnosticListIteratorWithIndex(list *DiagnosticList, index int) *DiagnosticListIterator

func (*DiagnosticListIterator) Class

func (*DiagnosticListIterator) Class() *Class

func (*DiagnosticListIterator) Copy

func (*DiagnosticListIterator) DirectClass

func (*DiagnosticListIterator) DirectClass() *Class

func (*DiagnosticListIterator) Error

func (l *DiagnosticListIterator) Error() string

func (*DiagnosticListIterator) Inspect

func (l *DiagnosticListIterator) Inspect() string

func (*DiagnosticListIterator) InstanceVariables

func (*DiagnosticListIterator) InstanceVariables() *InstanceVariables

func (*DiagnosticListIterator) Next

func (l *DiagnosticListIterator) Next() (Value, Value)

func (*DiagnosticListIterator) Reset

func (l *DiagnosticListIterator) Reset()

func (*DiagnosticListIterator) SingletonClass

func (*DiagnosticListIterator) SingletonClass() *Class

type EndlessClosedRange

type EndlessClosedRange struct {
	Start Value // start value
}

Represents an endless closed range eg. `5...`

func NewEndlessClosedRange

func NewEndlessClosedRange(start Value) *EndlessClosedRange

Create a new endless closed range class.

func (*EndlessClosedRange) Class

func (*EndlessClosedRange) Class() *Class

func (*EndlessClosedRange) Copy

func (r *EndlessClosedRange) Copy() Reference

func (*EndlessClosedRange) DirectClass

func (*EndlessClosedRange) DirectClass() *Class

func (*EndlessClosedRange) Error

func (r *EndlessClosedRange) Error() string

func (*EndlessClosedRange) Inspect

func (r *EndlessClosedRange) Inspect() string

func (*EndlessClosedRange) InstanceVariables

func (r *EndlessClosedRange) InstanceVariables() *InstanceVariables

func (*EndlessClosedRange) SingletonClass

func (*EndlessClosedRange) SingletonClass() *Class

type EndlessClosedRangeIterator

type EndlessClosedRangeIterator struct {
	Range          *EndlessClosedRange
	CurrentElement Value
}

func NewEndlessClosedRangeIterator

func NewEndlessClosedRangeIterator(r *EndlessClosedRange) *EndlessClosedRangeIterator

func NewEndlessClosedRangeIteratorWithCurrentElement

func NewEndlessClosedRangeIteratorWithCurrentElement(r *EndlessClosedRange, currentElement Value) *EndlessClosedRangeIterator

func (*EndlessClosedRangeIterator) Class

func (*EndlessClosedRangeIterator) Copy

func (*EndlessClosedRangeIterator) DirectClass

func (*EndlessClosedRangeIterator) DirectClass() *Class

func (*EndlessClosedRangeIterator) Error

func (*EndlessClosedRangeIterator) Inspect

func (r *EndlessClosedRangeIterator) Inspect() string

func (*EndlessClosedRangeIterator) InstanceVariables

func (*EndlessClosedRangeIterator) InstanceVariables() *InstanceVariables

func (*EndlessClosedRangeIterator) Reset

func (r *EndlessClosedRangeIterator) Reset()

func (*EndlessClosedRangeIterator) SingletonClass

func (*EndlessClosedRangeIterator) SingletonClass() *Class

type EndlessOpenRange

type EndlessOpenRange struct {
	Start Value // start value
}

Represents an endless open range eg. `5<..`

func NewEndlessOpenRange

func NewEndlessOpenRange(start Value) *EndlessOpenRange

Create a new endless open range class.

func (*EndlessOpenRange) Class

func (*EndlessOpenRange) Class() *Class

func (*EndlessOpenRange) Copy

func (r *EndlessOpenRange) Copy() Reference

func (*EndlessOpenRange) DirectClass

func (*EndlessOpenRange) DirectClass() *Class

func (*EndlessOpenRange) Error

func (r *EndlessOpenRange) Error() string

func (*EndlessOpenRange) Inspect

func (r *EndlessOpenRange) Inspect() string

func (*EndlessOpenRange) InstanceVariables

func (r *EndlessOpenRange) InstanceVariables() *InstanceVariables

func (*EndlessOpenRange) SingletonClass

func (*EndlessOpenRange) SingletonClass() *Class

type EndlessOpenRangeIterator

type EndlessOpenRangeIterator struct {
	Range          *EndlessOpenRange
	CurrentElement Value
}

func NewEndlessOpenRangeIterator

func NewEndlessOpenRangeIterator(r *EndlessOpenRange) *EndlessOpenRangeIterator

func NewEndlessOpenRangeIteratorWithCurrentElement

func NewEndlessOpenRangeIteratorWithCurrentElement(r *EndlessOpenRange, currentElement Value) *EndlessOpenRangeIterator

func (*EndlessOpenRangeIterator) Class

func (*EndlessOpenRangeIterator) Class() *Class

func (*EndlessOpenRangeIterator) Copy

func (*EndlessOpenRangeIterator) DirectClass

func (*EndlessOpenRangeIterator) DirectClass() *Class

func (*EndlessOpenRangeIterator) Error

func (r *EndlessOpenRangeIterator) Error() string

func (*EndlessOpenRangeIterator) Inspect

func (r *EndlessOpenRangeIterator) Inspect() string

func (*EndlessOpenRangeIterator) InstanceVariables

func (*EndlessOpenRangeIterator) InstanceVariables() *InstanceVariables

func (*EndlessOpenRangeIterator) Reset

func (r *EndlessOpenRangeIterator) Reset()

func (*EndlessOpenRangeIterator) SingletonClass

func (*EndlessOpenRangeIterator) SingletonClass() *Class

type FalseType

type FalseType struct{}

func (FalseType) Class

func (FalseType) Class() *Class

func (FalseType) DirectClass

func (FalseType) DirectClass() *Class

func (FalseType) Error

func (f FalseType) Error() string

func (FalseType) Hash

func (FalseType) Hash() UInt64

func (FalseType) Inspect

func (FalseType) Inspect() string

func (FalseType) InstanceVariables

func (FalseType) InstanceVariables() *InstanceVariables

func (FalseType) SingletonClass

func (FalseType) SingletonClass() *Class

func (FalseType) ToValue

func (FalseType) ToValue() Value

type Float

type Float float64

Elk's Float value

func FloatInf

func FloatInf() Float

Positive infinity

func FloatNaN

func FloatNaN() Float

Not a number

func FloatNegInf

func FloatNegInf() Float

Negative infinity

func (Float) AddVal

func (f Float) AddVal(other Value) (result, err Value)

AddVal another value and return an error if something went wrong.

func (Float) Centuries

func (f Float) Centuries() *DateTimeSpan

func (Float) Class

func (Float) Class() *Class

func (Float) Cmp

func (x Float) Cmp(y Float) int

Cmp compares x and y and returns:

-1 if x <  y
 0 if x == y
+1 if x >  y

Panics if x or y are NaN.

func (Float) CompareVal

func (f Float) CompareVal(other Value) (result, err Value)

Returns 1 if i is greater than other Returns 0 if both are equal. Returns -1 if i is less than other. Returns nil if the comparison was impossible (NaN)

func (Float) Days

func (f Float) Days() *DateTimeSpan

func (Float) DirectClass

func (Float) DirectClass() *Class

func (Float) DivideVal

func (f Float) DivideVal(other Value) (result, err Value)

DivideVal by another value and return an error if something went wrong.

func (Float) Equal

func (f Float) Equal(other Value) bool

Check whether f is equal to other and return an error if something went wrong.

func (Float) EqualVal

func (f Float) EqualVal(other Value) Value

Check whether f is equal to other and return an error if something went wrong.

func (Float) Error

func (f Float) Error() string

func (Float) ExponentiateVal

func (f Float) ExponentiateVal(other Value) (result, err Value)

ExponentiateVal by another value and return an error if something went wrong.

func (Float) GreaterThan

func (f Float) GreaterThan(other Value) (bool, Value)

Check whether f is greater than other and return an error if something went wrong.

func (Float) GreaterThanEqual

func (f Float) GreaterThanEqual(other Value) (bool, Value)

Check whether f is greater than or equal to other and return an error if something went wrong.

func (Float) GreaterThanEqualVal

func (f Float) GreaterThanEqualVal(other Value) (Value, Value)

Check whether f is greater than or equal to other and return an error if something went wrong.

func (Float) GreaterThanVal

func (f Float) GreaterThanVal(other Value) (Value, Value)

Check whether f is greater than other and return an error if something went wrong.

func (Float) Hash

func (f Float) Hash() UInt64

func (Float) Hours

func (f Float) Hours() TimeSpan

func (Float) Inspect

func (f Float) Inspect() string

func (Float) InstanceVariables

func (f Float) InstanceVariables() *InstanceVariables

func (Float) IsInf

func (f Float) IsInf(sign int) bool

IsInf reports whether f is an infinity, according to sign. If sign > 0, IsInf reports whether f is positive infinity. If sign < 0, IsInf reports whether f is negative infinity. If sign == 0, IsInf reports whether f is either infinity.

func (Float) IsInt

func (f Float) IsInt() bool

Check if the float is an integer.

func (Float) IsNaN

func (f Float) IsNaN() bool

IsNaN reports whether f is a “not-a-number” value.

func (Float) LaxEqualVal

func (f Float) LaxEqualVal(other Value) Value

Check whether f is equal to other

func (Float) LessThan

func (f Float) LessThan(other Value) (bool, Value)

Check whether f is less than other and return an error if something went wrong.

func (Float) LessThanEqual

func (f Float) LessThanEqual(other Value) (bool, Value)

Check whether f is less than or equal to other and return an error if something went wrong.

func (Float) LessThanEqualVal

func (f Float) LessThanEqualVal(other Value) (Value, Value)

Check whether f is less than or equal to other and return an error if something went wrong.

func (Float) LessThanVal

func (f Float) LessThanVal(other Value) (Value, Value)

Check whether f is less than other and return an error if something went wrong.

func (Float) Microseconds

func (f Float) Microseconds() TimeSpan

func (Float) Millenia

func (f Float) Millenia() *DateTimeSpan

func (Float) Milliseconds

func (f Float) Milliseconds() TimeSpan

func (Float) Minutes

func (f Float) Minutes() TimeSpan

func (Float) Mod

func (a Float) Mod(b Float) Float

func (Float) ModuloVal

func (f Float) ModuloVal(other Value) (result, err Value)

Perform modulo by another numeric value and return an error if something went wrong.

func (Float) Months

func (f Float) Months() *DateTimeSpan

func (Float) MultiplyVal

func (f Float) MultiplyVal(other Value) (result, err Value)

Add another value and return an error if something went wrong.

func (Float) Nanoseconds

func (f Float) Nanoseconds() TimeSpan

func (Float) Seconds

func (f Float) Seconds() TimeSpan

func (Float) SingletonClass

func (Float) SingletonClass() *Class

func (Float) StrictEqualVal

func (f Float) StrictEqualVal(other Value) Value

Check whether f is strictly equal to other and return an error if something went wrong.

func (Float) SubtractVal

func (f Float) SubtractVal(other Value) (result, err Value)

SubtractVal another value and return an error if something went wrong.

func (Float) ToFloat32

func (f Float) ToFloat32() Float32

Convert to Elk Float32

func (Float) ToFloat64

func (f Float) ToFloat64() Float64

Convert to Elk Float64

func (Float) ToInt

func (f Float) ToInt() Value

Convert to Elk Int.

func (Float) ToInt16

func (f Float) ToInt16() Int16

Convert to Elk Int16

func (Float) ToInt32

func (f Float) ToInt32() Int32

Convert to Elk Int32

func (Float) ToInt64

func (f Float) ToInt64() Int64

Convert to Elk Int64

func (Float) ToInt8

func (f Float) ToInt8() Int8

Convert to Elk Int8

func (Float) ToString

func (f Float) ToString() String

func (Float) ToUInt

func (f Float) ToUInt() UInt

Convert to Elk UInt64

func (Float) ToUInt16

func (f Float) ToUInt16() UInt16

Convert to Elk UInt16

func (Float) ToUInt32

func (f Float) ToUInt32() UInt32

Convert to Elk UInt32

func (Float) ToUInt64

func (f Float) ToUInt64() UInt64

Convert to Elk UInt64

func (Float) ToUInt8

func (f Float) ToUInt8() UInt8

Convert to Elk UInt8

func (Float) ToValue

func (f Float) ToValue() Value

func (Float) Weeks

func (f Float) Weeks() *DateTimeSpan

func (Float) Years

func (f Float) Years() *DateTimeSpan

type Float32

type Float32 float32

Elk's Float32 value

func Float32Inf

func Float32Inf() Float32

Positive infinity

func Float32NaN

func Float32NaN() Float32

Not a number

func Float32NegInf

func Float32NegInf() Float32

Negative infinity

func (Float32) Add

func (f Float32) Add(other Value) (Float32, Value)

func (Float32) Class

func (Float32) Class() *Class

func (Float32) CompareVal

func (f Float32) CompareVal(other Value) (Value, Value)

func (Float32) DirectClass

func (Float32) DirectClass() *Class

func (Float32) Divide

func (f Float32) Divide(other Value) (Float32, Value)

func (Float32) Equal

func (f Float32) Equal(other Value) bool

func (Float32) EqualVal

func (f Float32) EqualVal(other Value) Value

func (Float32) Error

func (f Float32) Error() string

func (Float32) ExponentiateVal

func (f Float32) ExponentiateVal(other Value) (Float32, Value)

ExponentiateVal by the right value.

func (Float32) GreaterThan

func (f Float32) GreaterThan(other Value) (bool, Value)

func (Float32) GreaterThanEqual

func (f Float32) GreaterThanEqual(other Value) (bool, Value)

func (Float32) GreaterThanEqualVal

func (f Float32) GreaterThanEqualVal(other Value) (Value, Value)

func (Float32) GreaterThanVal

func (f Float32) GreaterThanVal(other Value) (Value, Value)

func (Float32) Hash

func (f Float32) Hash() UInt64

func (Float32) Inspect

func (f Float32) Inspect() string

func (Float32) InstanceVariables

func (f Float32) InstanceVariables() *InstanceVariables

func (Float32) IsInf

func (f Float32) IsInf(sign int) bool

IsInf reports whether f is an infinity, according to sign. If sign > 0, IsInf reports whether f is positive infinity. If sign < 0, IsInf reports whether f is negative infinity. If sign == 0, IsInf reports whether f is either infinity.

func (Float32) IsNaN

func (f Float32) IsNaN() bool

IsNaN reports whether f is a “not-a-number” value.

func (Float32) LessThan

func (f Float32) LessThan(other Value) (bool, Value)

func (Float32) LessThanEqual

func (f Float32) LessThanEqual(other Value) (bool, Value)

func (Float32) LessThanEqualVal

func (f Float32) LessThanEqualVal(other Value) (Value, Value)

func (Float32) LessThanVal

func (f Float32) LessThanVal(other Value) (Value, Value)

func (Float32) ModuloVal

func (f Float32) ModuloVal(other Value) (Float32, Value)

func (Float32) Multiply

func (f Float32) Multiply(other Value) (Float32, Value)

func (Float32) SingletonClass

func (Float32) SingletonClass() *Class

func (Float32) StrictEqualVal

func (f Float32) StrictEqualVal(other Value) Value

func (Float32) Subtract

func (f Float32) Subtract(other Value) (Float32, Value)

func (Float32) ToString

func (f Float32) ToString() String

func (Float32) ToValue

func (f Float32) ToValue() Value

type Float64

type Float64 float64

Elk's Float64 value

func Float64Inf

func Float64Inf() Float64

Positive infinity

func Float64NaN

func Float64NaN() Float64

Not a number

func Float64NegInf

func Float64NegInf() Float64

Negative infinity

func (Float64) Add

func (f Float64) Add(other Value) (Float64, Value)

func (Float64) Class

func (Float64) Class() *Class

func (Float64) CompareVal

func (f Float64) CompareVal(other Value) (Value, Value)

func (Float64) Copy

func (f Float64) Copy() Reference

func (Float64) DirectClass

func (Float64) DirectClass() *Class

func (Float64) Divide

func (f Float64) Divide(other Value) (Float64, Value)

func (Float64) Equal

func (f Float64) Equal(other Value) bool

func (Float64) EqualVal

func (f Float64) EqualVal(other Value) Value

func (Float64) Error

func (f Float64) Error() string

func (Float64) ExponentiateVal

func (f Float64) ExponentiateVal(other Value) (Float64, Value)

ExponentiateVal by the right value.

func (Float64) GreaterThan

func (f Float64) GreaterThan(other Value) (bool, Value)

func (Float64) GreaterThanEqual

func (f Float64) GreaterThanEqual(other Value) (bool, Value)

func (Float64) GreaterThanEqualVal

func (f Float64) GreaterThanEqualVal(other Value) (Value, Value)

func (Float64) GreaterThanVal

func (f Float64) GreaterThanVal(other Value) (Value, Value)

func (Float64) Hash

func (f Float64) Hash() UInt64

func (Float64) Inspect

func (f Float64) Inspect() string

func (Float64) InstanceVariables

func (f Float64) InstanceVariables() *InstanceVariables

func (Float64) IsInf

func (f Float64) IsInf(sign int) bool

IsInf reports whether f is an infinity, according to sign. If sign > 0, IsInf reports whether f is positive infinity. If sign < 0, IsInf reports whether f is negative infinity. If sign == 0, IsInf reports whether f is either infinity.

func (Float64) IsNaN

func (f Float64) IsNaN() bool

IsNaN reports whether f is a “not-a-number” value.

func (Float64) LessThan

func (f Float64) LessThan(other Value) (bool, Value)

func (Float64) LessThanEqual

func (f Float64) LessThanEqual(other Value) (bool, Value)

func (Float64) LessThanEqualVal

func (f Float64) LessThanEqualVal(other Value) (Value, Value)

func (Float64) LessThanVal

func (f Float64) LessThanVal(other Value) (Value, Value)

func (Float64) ModuloVal

func (f Float64) ModuloVal(other Value) (Float64, Value)

func (Float64) Multiply

func (f Float64) Multiply(other Value) (Float64, Value)

func (Float64) SingletonClass

func (Float64) SingletonClass() *Class

func (Float64) StrictEqualVal

func (f Float64) StrictEqualVal(other Value) Value

func (Float64) Subtract

func (f Float64) Subtract(other Value) (Float64, Value)

func (Float64) ToString

func (f Float64) ToString() String

func (Float64) ToValue

func (f Float64) ToValue() Value

type Function

type Function interface {
	Reference
	// The number of parameters in total
	ParameterCount() int
	// The number of optional parameters with default values
	OptionalParameterCount() int
}

Elk function object

type GlobalObjectType

type GlobalObjectType struct{}

func (GlobalObjectType) Class

func (GlobalObjectType) Class() *Class

func (GlobalObjectType) Copy

func (g GlobalObjectType) Copy() Reference

func (GlobalObjectType) DirectClass

func (GlobalObjectType) DirectClass() *Class

func (GlobalObjectType) Error

func (g GlobalObjectType) Error() string

func (GlobalObjectType) Inspect

func (GlobalObjectType) Inspect() string

func (GlobalObjectType) InstanceVariables

func (GlobalObjectType) InstanceVariables() *InstanceVariables

func (GlobalObjectType) SingletonClass

func (GlobalObjectType) SingletonClass() *Class

type HashMap

type HashMap struct {
	Table         []Pair
	OccupiedSlots int
	Elements      int
}

func NewHashMap

func NewHashMap(capacity int) *HashMap

func (*HashMap) All

func (h *HashMap) All() iter.Seq[Pair]

func (*HashMap) Capacity

func (h *HashMap) Capacity() int

func (*HashMap) Class

func (*HashMap) Class() *Class

func (*HashMap) Clone

func (h *HashMap) Clone() *HashMap

func (*HashMap) Copy

func (h *HashMap) Copy() Reference

func (*HashMap) DirectClass

func (*HashMap) DirectClass() *Class

func (*HashMap) Error

func (h *HashMap) Error() string

func (*HashMap) Inspect

func (h *HashMap) Inspect() string

func (*HashMap) InstanceVariables

func (*HashMap) InstanceVariables() *InstanceVariables

func (*HashMap) LeftCapacity

func (h *HashMap) LeftCapacity() int

func (*HashMap) Length

func (h *HashMap) Length() int

func (*HashMap) SingletonClass

func (*HashMap) SingletonClass() *Class

type HashMapIterator

type HashMapIterator struct {
	HashMap *HashMap
	Index   int
}

func NewHashMapIterator

func NewHashMapIterator(hmap *HashMap) *HashMapIterator

func NewHashMapIteratorWithIndex

func NewHashMapIteratorWithIndex(hmap *HashMap, index int) *HashMapIterator

func (*HashMapIterator) Class

func (*HashMapIterator) Class() *Class

func (*HashMapIterator) Copy

func (h *HashMapIterator) Copy() Reference

func (*HashMapIterator) DirectClass

func (*HashMapIterator) DirectClass() *Class

func (*HashMapIterator) Error

func (h *HashMapIterator) Error() string

func (*HashMapIterator) Inspect

func (h *HashMapIterator) Inspect() string

func (*HashMapIterator) InstanceVariables

func (*HashMapIterator) InstanceVariables() *InstanceVariables

func (*HashMapIterator) Next

func (h *HashMapIterator) Next() (Value, Value)

func (*HashMapIterator) Reset

func (h *HashMapIterator) Reset()

func (*HashMapIterator) SingletonClass

func (*HashMapIterator) SingletonClass() *Class

type HashRecord

type HashRecord HashMap

func NewHashRecord

func NewHashRecord(capacity int) *HashRecord

func (*HashRecord) All

func (h *HashRecord) All() iter.Seq[Pair]

func (*HashRecord) Class

func (*HashRecord) Class() *Class

func (*HashRecord) Copy

func (h *HashRecord) Copy() Reference

func (*HashRecord) DirectClass

func (*HashRecord) DirectClass() *Class

func (*HashRecord) Error

func (h *HashRecord) Error() string

func (*HashRecord) Inspect

func (h *HashRecord) Inspect() string

func (*HashRecord) InstanceVariables

func (*HashRecord) InstanceVariables() *InstanceVariables

func (*HashRecord) Length

func (h *HashRecord) Length() int

func (*HashRecord) SingletonClass

func (*HashRecord) SingletonClass() *Class

type HashRecordIterator

type HashRecordIterator struct {
	HashRecord *HashRecord
	Index      int
}

func NewHashRecordIterator

func NewHashRecordIterator(hrec *HashRecord) *HashRecordIterator

func NewHashRecordIteratorWithIndex

func NewHashRecordIteratorWithIndex(hrec *HashRecord, index int) *HashRecordIterator

func (*HashRecordIterator) Class

func (*HashRecordIterator) Class() *Class

func (*HashRecordIterator) Copy

func (h *HashRecordIterator) Copy() Reference

func (*HashRecordIterator) DirectClass

func (*HashRecordIterator) DirectClass() *Class

func (*HashRecordIterator) Error

func (h *HashRecordIterator) Error() string

func (*HashRecordIterator) Inspect

func (h *HashRecordIterator) Inspect() string

func (*HashRecordIterator) InstanceVariables

func (*HashRecordIterator) InstanceVariables() *InstanceVariables

func (*HashRecordIterator) Next

func (h *HashRecordIterator) Next() (Value, Value)

func (*HashRecordIterator) Reset

func (h *HashRecordIterator) Reset()

func (*HashRecordIterator) SingletonClass

func (*HashRecordIterator) SingletonClass() *Class

type HashSet

type HashSet struct {
	Table         []Value
	OccupiedSlots int
	Elements      int
}

func NewHashSet

func NewHashSet(capacity int) *HashSet

func (*HashSet) All

func (h *HashSet) All() iter.Seq[Value]

func (*HashSet) Capacity

func (h *HashSet) Capacity() int

func (*HashSet) Class

func (*HashSet) Class() *Class

func (*HashSet) Copy

func (h *HashSet) Copy() Reference

func (*HashSet) DirectClass

func (*HashSet) DirectClass() *Class

func (*HashSet) Error

func (h *HashSet) Error() string

func (*HashSet) Inspect

func (h *HashSet) Inspect() string

func (*HashSet) InstanceVariables

func (*HashSet) InstanceVariables() *InstanceVariables

func (*HashSet) LeftCapacity

func (h *HashSet) LeftCapacity() int

func (*HashSet) Length

func (h *HashSet) Length() int

func (*HashSet) SingletonClass

func (*HashSet) SingletonClass() *Class

type HashSetIterator

type HashSetIterator struct {
	HashSet *HashSet
	Index   int
}

func NewHashSetIterator

func NewHashSetIterator(set *HashSet) *HashSetIterator

func NewHashSetIteratorWithIndex

func NewHashSetIteratorWithIndex(set *HashSet, index int) *HashSetIterator

func (*HashSetIterator) Class

func (*HashSetIterator) Class() *Class

func (*HashSetIterator) Copy

func (h *HashSetIterator) Copy() Reference

func (*HashSetIterator) DirectClass

func (*HashSetIterator) DirectClass() *Class

func (*HashSetIterator) Error

func (h *HashSetIterator) Error() string

func (*HashSetIterator) Inspect

func (h *HashSetIterator) Inspect() string

func (*HashSetIterator) InstanceVariables

func (*HashSetIterator) InstanceVariables() *InstanceVariables

func (*HashSetIterator) Next

func (h *HashSetIterator) Next() (Value, Value)

func (*HashSetIterator) Reset

func (h *HashSetIterator) Reset()

func (*HashSetIterator) SingletonClass

func (*HashSetIterator) SingletonClass() *Class

type ImmutableBox

type ImmutableBox Value

Box wraps another value, it's a read only pointer to another `Value`.

func NewImmutableBox

func NewImmutableBox(v Value) *ImmutableBox

func (*ImmutableBox) Class

func (*ImmutableBox) Class() *Class

func (*ImmutableBox) Copy

func (b *ImmutableBox) Copy() Reference

func (*ImmutableBox) DirectClass

func (*ImmutableBox) DirectClass() *Class

func (*ImmutableBox) Error

func (b *ImmutableBox) Error() string

func (*ImmutableBox) Get

func (b *ImmutableBox) Get() Value

Retrieve the value stored in the box

func (*ImmutableBox) Inspect

func (b *ImmutableBox) Inspect() string

func (*ImmutableBox) InstanceVariables

func (*ImmutableBox) InstanceVariables() *InstanceVariables

func (*ImmutableBox) Next

func (b *ImmutableBox) Next(step int) *ImmutableBox

Return the box of the next value in memory

func (*ImmutableBox) Prev

func (b *ImmutableBox) Prev(step int) *ImmutableBox

Return the box of the previous value in memory

func (*ImmutableBox) SingletonClass

func (*ImmutableBox) SingletonClass() *Class

func (*ImmutableBox) ToBox

func (b *ImmutableBox) ToBox() *Box

type Inspectable

type Inspectable interface {
	Inspect() string
}

type InstanceVariables

type InstanceVariables []Value

A slice containing instance variables of an Elk value

func (*InstanceVariables) BoxOf

func (i *InstanceVariables) BoxOf(index int) *Box

func (*InstanceVariables) ExpandUpToIndex

func (i *InstanceVariables) ExpandUpToIndex(index int)

func (InstanceVariables) Get

func (i InstanceVariables) Get(index int) Value

func (InstanceVariables) Length

func (i InstanceVariables) Length() int

func (*InstanceVariables) Set

func (i *InstanceVariables) Set(index int, val Value)

type Int16

type Int16 int16

Elk's Int16 value

func MustParseInt16

func MustParseInt16(s string) Int16

func (Int16) Add

func (i Int16) Add(other Value) (Int16, Value)

func (Int16) BitwiseAnd

func (i Int16) BitwiseAnd(other Value) (Int16, Value)

Perform a bitwise AND.

func (Int16) BitwiseAndNot

func (i Int16) BitwiseAndNot(other Value) (Int16, Value)

Perform a bitwise AND NOT.

func (Int16) BitwiseOr

func (i Int16) BitwiseOr(other Value) (Int16, Value)

Perform a bitwise OR.

func (Int16) BitwiseXor

func (i Int16) BitwiseXor(other Value) (Int16, Value)

Perform a bitwise XOR.

func (Int16) Class

func (i Int16) Class() *Class

func (Int16) CompareVal

func (i Int16) CompareVal(other Value) (Value, Value)

func (Int16) DirectClass

func (Int16) DirectClass() *Class

func (Int16) Divide

func (i Int16) Divide(other Value) (Int16, Value)

func (Int16) Equal

func (i Int16) Equal(other Value) bool

func (Int16) EqualVal

func (i Int16) EqualVal(other Value) Value

func (Int16) Error

func (i Int16) Error() string

func (Int16) ExponentiateVal

func (i Int16) ExponentiateVal(other Value) (Int16, Value)

func (Int16) GreaterThan

func (i Int16) GreaterThan(other Value) (bool, Value)

func (Int16) GreaterThanEqual

func (i Int16) GreaterThanEqual(other Value) (bool, Value)

func (Int16) GreaterThanEqualVal

func (i Int16) GreaterThanEqualVal(other Value) (Value, Value)

func (Int16) GreaterThanVal

func (i Int16) GreaterThanVal(other Value) (Value, Value)

func (Int16) Hash

func (i Int16) Hash() UInt64

func (Int16) Inspect

func (i Int16) Inspect() string

func (Int16) InstanceVariables

func (i Int16) InstanceVariables() *InstanceVariables

func (Int16) LessThan

func (i Int16) LessThan(other Value) (bool, Value)

func (Int16) LessThanEqual

func (i Int16) LessThanEqual(other Value) (bool, Value)

func (Int16) LessThanEqualVal

func (i Int16) LessThanEqualVal(other Value) (Value, Value)

func (Int16) LessThanVal

func (i Int16) LessThanVal(other Value) (Value, Value)

func (Int16) ModuloVal

func (i Int16) ModuloVal(other Value) (Int16, Value)

func (Int16) Multiply

func (i Int16) Multiply(other Value) (Int16, Value)

func (Int16) SingletonClass

func (Int16) SingletonClass() *Class

func (Int16) StrictEqualVal

func (i Int16) StrictEqualVal(other Value) Value

func (Int16) Subtract

func (i Int16) Subtract(other Value) (Int16, Value)

func (Int16) ToFloat

func (i Int16) ToFloat() Float

Convert to Elk Float.

func (Int16) ToFloat32

func (i Int16) ToFloat32() Float32

Convert to Elk Float32.

func (Int16) ToFloat64

func (i Int16) ToFloat64() Float64

Convert to Elk Float64.

func (Int16) ToInt32

func (i Int16) ToInt32() Int32

Convert to Elk Int32.

func (Int16) ToInt64

func (i Int16) ToInt64() Int64

Convert to Elk Int64.

func (Int16) ToInt8

func (i Int16) ToInt8() Int8

Convert to Elk Int8.

func (Int16) ToSmallInt

func (i Int16) ToSmallInt() SmallInt

Convert to Elk SmallInt.

func (Int16) ToString

func (i Int16) ToString() String

Convert to Elk String.

func (Int16) ToUInt

func (i Int16) ToUInt() UInt

Convert to Elk UInt.

func (Int16) ToUInt16

func (i Int16) ToUInt16() UInt16

Convert to Elk UInt16.

func (Int16) ToUInt32

func (i Int16) ToUInt32() UInt32

Convert to Elk UInt32.

func (Int16) ToUInt64

func (i Int16) ToUInt64() UInt64

Convert to Elk UInt64.

func (Int16) ToUInt8

func (i Int16) ToUInt8() UInt8

Convert to Elk UInt8.

func (Int16) ToValue

func (i Int16) ToValue() Value

type Int32

type Int32 int32

Elk's Int32 value

func MustParseInt32

func MustParseInt32(s string) Int32

func (Int32) Add

func (i Int32) Add(other Value) (Int32, Value)

func (Int32) BitwiseAnd

func (i Int32) BitwiseAnd(other Value) (Int32, Value)

Perform a bitwise AND.

func (Int32) BitwiseAndNot

func (i Int32) BitwiseAndNot(other Value) (Int32, Value)

Perform a bitwise AND NOT.

func (Int32) BitwiseOr

func (i Int32) BitwiseOr(other Value) (Int32, Value)

Perform a bitwise OR.

func (Int32) BitwiseXor

func (i Int32) BitwiseXor(other Value) (Int32, Value)

Perform a bitwise XOR.

func (Int32) Class

func (i Int32) Class() *Class

func (Int32) CompareVal

func (i Int32) CompareVal(other Value) (Value, Value)

func (Int32) DirectClass

func (Int32) DirectClass() *Class

func (Int32) Divide

func (i Int32) Divide(other Value) (Int32, Value)

func (Int32) Equal

func (i Int32) Equal(other Value) bool

func (Int32) EqualVal

func (i Int32) EqualVal(other Value) Value

func (Int32) Error

func (i Int32) Error() string

func (Int32) ExponentiateVal

func (i Int32) ExponentiateVal(other Value) (Int32, Value)

func (Int32) GreaterThan

func (i Int32) GreaterThan(other Value) (bool, Value)

func (Int32) GreaterThanEqual

func (i Int32) GreaterThanEqual(other Value) (bool, Value)

func (Int32) GreaterThanEqualVal

func (i Int32) GreaterThanEqualVal(other Value) (Value, Value)

func (Int32) GreaterThanVal

func (i Int32) GreaterThanVal(other Value) (Value, Value)

func (Int32) Hash

func (i Int32) Hash() UInt64

func (Int32) Inspect

func (i Int32) Inspect() string

func (Int32) InstanceVariables

func (i Int32) InstanceVariables() *InstanceVariables

func (Int32) LessThan

func (i Int32) LessThan(other Value) (bool, Value)

func (Int32) LessThanEqual

func (i Int32) LessThanEqual(other Value) (bool, Value)

func (Int32) LessThanEqualVal

func (i Int32) LessThanEqualVal(other Value) (Value, Value)

func (Int32) LessThanVal

func (i Int32) LessThanVal(other Value) (Value, Value)

func (Int32) ModuloVal

func (i Int32) ModuloVal(other Value) (Int32, Value)

func (Int32) Multiply

func (i Int32) Multiply(other Value) (Int32, Value)

func (Int32) SingletonClass

func (Int32) SingletonClass() *Class

func (Int32) StrictEqualVal

func (i Int32) StrictEqualVal(other Value) Value

func (Int32) Subtract

func (i Int32) Subtract(other Value) (Int32, Value)

func (Int32) ToFloat

func (i Int32) ToFloat() Float

Convert to Elk Float.

func (Int32) ToFloat32

func (i Int32) ToFloat32() Float32

Convert to Elk Float32.

func (Int32) ToFloat64

func (i Int32) ToFloat64() Float64

Convert to Elk Float64.

func (Int32) ToInt16

func (i Int32) ToInt16() Int16

Convert to Elk Int16.

func (Int32) ToInt64

func (i Int32) ToInt64() Int64

Convert to Elk Int64.

func (Int32) ToInt8

func (i Int32) ToInt8() Int8

Convert to Elk Int8.

func (Int32) ToSmallInt

func (i Int32) ToSmallInt() SmallInt

Convert to Elk SmallInt.

func (Int32) ToString

func (i Int32) ToString() String

Convert to Elk String.

func (Int32) ToUInt

func (i Int32) ToUInt() UInt

Convert to Elk UInt.

func (Int32) ToUInt16

func (i Int32) ToUInt16() UInt16

Convert to Elk UInt16.

func (Int32) ToUInt32

func (i Int32) ToUInt32() UInt32

Convert to Elk UInt32.

func (Int32) ToUInt64

func (i Int32) ToUInt64() UInt64

Convert to Elk UInt64.

func (Int32) ToUInt8

func (i Int32) ToUInt8() UInt8

Convert to Elk UInt8.

func (Int32) ToValue

func (i Int32) ToValue() Value

type Int64

type Int64 int64

Elk's Int64 value

func MustParseInt64

func MustParseInt64(s string) Int64

func (Int64) Add

func (i Int64) Add(other Value) (Int64, Value)

func (Int64) BitwiseAnd

func (i Int64) BitwiseAnd(other Value) (Int64, Value)

Perform a bitwise AND.

func (Int64) BitwiseAndNot

func (i Int64) BitwiseAndNot(other Value) (Int64, Value)

Perform a bitwise AND NOT.

func (Int64) BitwiseOr

func (i Int64) BitwiseOr(other Value) (Int64, Value)

Perform a bitwise OR.

func (Int64) BitwiseXor

func (i Int64) BitwiseXor(other Value) (Int64, Value)

Perform a bitwise XOR.

func (Int64) Class

func (i Int64) Class() *Class

func (Int64) CompareVal

func (i Int64) CompareVal(other Value) (Value, Value)

func (Int64) Copy

func (i Int64) Copy() Reference

func (Int64) DirectClass

func (Int64) DirectClass() *Class

func (Int64) Divide

func (i Int64) Divide(other Value) (Int64, Value)

func (Int64) Equal

func (i Int64) Equal(other Value) bool

func (Int64) EqualVal

func (i Int64) EqualVal(other Value) Value

func (Int64) Error

func (i Int64) Error() string

func (Int64) ExponentiateVal

func (i Int64) ExponentiateVal(other Value) (Int64, Value)

func (Int64) GreaterThan

func (i Int64) GreaterThan(other Value) (bool, Value)

func (Int64) GreaterThanEqual

func (i Int64) GreaterThanEqual(other Value) (bool, Value)

func (Int64) GreaterThanEqualVal

func (i Int64) GreaterThanEqualVal(other Value) (Value, Value)

func (Int64) GreaterThanVal

func (i Int64) GreaterThanVal(other Value) (Value, Value)

func (Int64) Hash

func (i Int64) Hash() UInt64

func (Int64) Inspect

func (i Int64) Inspect() string

func (Int64) InstanceVariables

func (i Int64) InstanceVariables() *InstanceVariables

func (Int64) LessThan

func (i Int64) LessThan(other Value) (bool, Value)

func (Int64) LessThanEqual

func (i Int64) LessThanEqual(other Value) (bool, Value)

func (Int64) LessThanEqualVal

func (i Int64) LessThanEqualVal(other Value) (Value, Value)

func (Int64) LessThanVal

func (i Int64) LessThanVal(other Value) (Value, Value)

func (Int64) ModuloVal

func (i Int64) ModuloVal(other Value) (Int64, Value)

func (Int64) Multiply

func (i Int64) Multiply(other Value) (Int64, Value)

func (Int64) SingletonClass

func (Int64) SingletonClass() *Class

func (Int64) StrictEqualVal

func (i Int64) StrictEqualVal(other Value) Value

func (Int64) Subtract

func (i Int64) Subtract(other Value) (Int64, Value)

func (Int64) ToFloat

func (i Int64) ToFloat() Float

Convert to Elk Float.

func (Int64) ToFloat32

func (i Int64) ToFloat32() Float32

Convert to Elk Float32.

func (Int64) ToFloat64

func (i Int64) ToFloat64() Float64

Convert to Elk Float64.

func (Int64) ToInt16

func (i Int64) ToInt16() Int16

Convert to Elk Int16.

func (Int64) ToInt32

func (i Int64) ToInt32() Int32

Convert to Elk Int32.

func (Int64) ToInt8

func (i Int64) ToInt8() Int8

Convert to Elk Int8.

func (Int64) ToSmallInt

func (i Int64) ToSmallInt() SmallInt

Convert to Elk SmallInt.

func (Int64) ToString

func (i Int64) ToString() String

Convert to Elk String.

func (Int64) ToUInt

func (i Int64) ToUInt() UInt

Convert to Elk UInt.

func (Int64) ToUInt16

func (i Int64) ToUInt16() UInt16

Convert to Elk UInt16.

func (Int64) ToUInt32

func (i Int64) ToUInt32() UInt32

Convert to Elk UInt32.

func (Int64) ToUInt64

func (i Int64) ToUInt64() UInt64

Convert to Elk UInt64.

func (Int64) ToUInt8

func (i Int64) ToUInt8() UInt8

Convert to Elk UInt8.

func (Int64) ToValue

func (i Int64) ToValue() Value

type Int8

type Int8 int8

Elk's Int8 value

func MustParseInt8

func MustParseInt8(s string) Int8

func (Int8) Add

func (i Int8) Add(other Value) (Int8, Value)

func (Int8) BitwiseAnd

func (i Int8) BitwiseAnd(other Value) (Int8, Value)

Perform a bitwise AND.

func (Int8) BitwiseAndNot

func (i Int8) BitwiseAndNot(other Value) (Int8, Value)

Perform a bitwise AND NOT.

func (Int8) BitwiseOr

func (i Int8) BitwiseOr(other Value) (Int8, Value)

Perform a bitwise OR.

func (Int8) BitwiseXor

func (i Int8) BitwiseXor(other Value) (Int8, Value)

Perform a bitwise XOR.

func (Int8) Class

func (i Int8) Class() *Class

func (Int8) CompareVal

func (i Int8) CompareVal(other Value) (Value, Value)

func (Int8) DirectClass

func (Int8) DirectClass() *Class

func (Int8) Divide

func (i Int8) Divide(other Value) (Int8, Value)

func (Int8) Equal

func (i Int8) Equal(other Value) bool

func (Int8) EqualVal

func (i Int8) EqualVal(other Value) Value

func (Int8) Error

func (i Int8) Error() string

func (Int8) ExponentiateVal

func (i Int8) ExponentiateVal(other Value) (Int8, Value)

func (Int8) GreaterThan

func (i Int8) GreaterThan(other Value) (bool, Value)

func (Int8) GreaterThanEqual

func (i Int8) GreaterThanEqual(other Value) (bool, Value)

func (Int8) GreaterThanEqualVal

func (i Int8) GreaterThanEqualVal(other Value) (Value, Value)

func (Int8) GreaterThanVal

func (i Int8) GreaterThanVal(other Value) (Value, Value)

func (Int8) Hash

func (i Int8) Hash() UInt64

func (Int8) Inspect

func (i Int8) Inspect() string

func (Int8) InstanceVariables

func (i Int8) InstanceVariables() *InstanceVariables

func (Int8) LessThan

func (i Int8) LessThan(other Value) (bool, Value)

func (Int8) LessThanEqual

func (i Int8) LessThanEqual(other Value) (bool, Value)

func (Int8) LessThanEqualVal

func (i Int8) LessThanEqualVal(other Value) (Value, Value)

func (Int8) LessThanVal

func (i Int8) LessThanVal(other Value) (Value, Value)

func (Int8) ModuloVal

func (i Int8) ModuloVal(other Value) (Int8, Value)

func (Int8) Multiply

func (i Int8) Multiply(other Value) (Int8, Value)

func (Int8) SingletonClass

func (Int8) SingletonClass() *Class

func (Int8) StrictEqualVal

func (i Int8) StrictEqualVal(other Value) Value

func (Int8) Subtract

func (i Int8) Subtract(other Value) (Int8, Value)

func (Int8) ToFloat

func (i Int8) ToFloat() Float

Convert to Elk Float.

func (Int8) ToFloat32

func (i Int8) ToFloat32() Float32

Convert to Elk Float32.

func (Int8) ToFloat64

func (i Int8) ToFloat64() Float64

Convert to Elk Float64.

func (Int8) ToInt16

func (i Int8) ToInt16() Int16

Convert to Elk Int16.

func (Int8) ToInt32

func (i Int8) ToInt32() Int32

Convert to Elk Int32.

func (Int8) ToInt64

func (i Int8) ToInt64() Int64

Convert to Elk Int64.

func (Int8) ToSmallInt

func (i Int8) ToSmallInt() SmallInt

Convert to Elk SmallInt.

func (Int8) ToString

func (i Int8) ToString() String

Convert to Elk String.

func (Int8) ToUInt

func (i Int8) ToUInt() UInt

Convert to Elk UInt.

func (Int8) ToUInt16

func (i Int8) ToUInt16() UInt16

Convert to Elk UInt16.

func (Int8) ToUInt32

func (i Int8) ToUInt32() UInt32

Convert to Elk UInt32.

func (Int8) ToUInt64

func (i Int8) ToUInt64() UInt64

Convert to Elk UInt64.

func (Int8) ToUInt8

func (i Int8) ToUInt8() UInt8

Convert to Elk UInt8.

func (Int8) ToValue

func (i Int8) ToValue() Value

type Interface

type Interface struct {
	ConstantContainer
	// contains filtered or unexported fields
}

Represents an Elk interface.

var CollectionInterface *Interface

::Std::Collection

var ColorizerInterface *Interface // ::Std::Colorizer
var Float32ConvertibleInterface *Interface // ::Std::Float32::Convertible
var Float64ConvertibleInterface *Interface // ::Std::Float64::Convertible
var ImmutableCollectionInterface *Interface

::Std::ImmutableCollection

var IterableInterface *Interface

::Std::Iterable

var IteratorInterface *Interface

::Std::Iterator

var PrimitiveIterableInterface *Interface

::Std::PrimitiveIterable

func NewInterface

func NewInterface() *Interface

Create a new module.

func NewInterfaceWithOptions

func NewInterfaceWithOptions(opts ...InterfaceOption) *Interface

Create a new class.

func (*Interface) Class

func (i *Interface) Class() *Class

func (*Interface) Copy

func (i *Interface) Copy() Reference

func (*Interface) DirectClass

func (i *Interface) DirectClass() *Class

func (*Interface) Error

func (i *Interface) Error() string

func (*Interface) Inspect

func (i *Interface) Inspect() string

func (*Interface) InstanceVariables

func (i *Interface) InstanceVariables() *InstanceVariables

func (*Interface) SingletonClass

func (i *Interface) SingletonClass() *Class

type InterfaceOption

type InterfaceOption = func(*Interface)

Interface constructor option function

func InterfaceWithName

func InterfaceWithName(name string) InterfaceOption

type IvarIndices

type IvarIndices map[Symbol]int

Maps instance variable names to their indices

func (*IvarIndices) Class

func (*IvarIndices) Class() *Class

func (*IvarIndices) Copy

func (n *IvarIndices) Copy() Reference

func (*IvarIndices) DirectClass

func (*IvarIndices) DirectClass() *Class

func (*IvarIndices) Error

func (n *IvarIndices) Error() string

func (IvarIndices) GetIndex

func (n IvarIndices) GetIndex(name Symbol) int

func (IvarIndices) GetIndexOk

func (n IvarIndices) GetIndexOk(name Symbol) (int, bool)

func (IvarIndices) GetName

func (n IvarIndices) GetName(index int) Symbol

func (IvarIndices) GetNameOk

func (n IvarIndices) GetNameOk(index int) (Symbol, bool)

func (*IvarIndices) Inspect

func (in *IvarIndices) Inspect() string

func (*IvarIndices) InstanceVariables

func (*IvarIndices) InstanceVariables() *InstanceVariables

func (*IvarIndices) Length

func (in *IvarIndices) Length() int

func (IvarIndices) SetIndex

func (n IvarIndices) SetIndex(name Symbol, i int)

func (*IvarIndices) SingletonClass

func (*IvarIndices) SingletonClass() *Class

func (IvarIndices) ToGoSource

func (n IvarIndices) ToGoSource() string

type LeftOpenRange

type LeftOpenRange struct {
	Start Value // start value
	End   Value // end value
}

Represents a left open range eg. `5<..2`

func NewLeftOpenRange

func NewLeftOpenRange(start, end Value) *LeftOpenRange

Create a new left open range class.

func (*LeftOpenRange) Class

func (*LeftOpenRange) Class() *Class

func (*LeftOpenRange) Copy

func (r *LeftOpenRange) Copy() Reference

func (*LeftOpenRange) DirectClass

func (*LeftOpenRange) DirectClass() *Class

func (*LeftOpenRange) Error

func (r *LeftOpenRange) Error() string

func (*LeftOpenRange) Inspect

func (r *LeftOpenRange) Inspect() string

func (*LeftOpenRange) InstanceVariables

func (r *LeftOpenRange) InstanceVariables() *InstanceVariables

func (*LeftOpenRange) SingletonClass

func (*LeftOpenRange) SingletonClass() *Class

type LeftOpenRangeIterator

type LeftOpenRangeIterator struct {
	Range          *LeftOpenRange
	CurrentElement Value
}

func NewLeftOpenRangeIterator

func NewLeftOpenRangeIterator(r *LeftOpenRange) *LeftOpenRangeIterator

func NewLeftOpenRangeIteratorWithCurrentElement

func NewLeftOpenRangeIteratorWithCurrentElement(r *LeftOpenRange, currentElement Value) *LeftOpenRangeIterator

func (*LeftOpenRangeIterator) Class

func (*LeftOpenRangeIterator) Class() *Class

func (*LeftOpenRangeIterator) Copy

func (r *LeftOpenRangeIterator) Copy() Reference

func (*LeftOpenRangeIterator) DirectClass

func (*LeftOpenRangeIterator) DirectClass() *Class

func (*LeftOpenRangeIterator) Error

func (r *LeftOpenRangeIterator) Error() string

func (*LeftOpenRangeIterator) Inspect

func (r *LeftOpenRangeIterator) Inspect() string

func (*LeftOpenRangeIterator) InstanceVariables

func (*LeftOpenRangeIterator) InstanceVariables() *InstanceVariables

func (*LeftOpenRangeIterator) Reset

func (r *LeftOpenRangeIterator) Reset()

func (*LeftOpenRangeIterator) SingletonClass

func (*LeftOpenRangeIterator) SingletonClass() *Class

type Location

type Location position.Location

func (*Location) Class

func (*Location) Class() *Class

func (*Location) Copy

func (l *Location) Copy() Reference

func (*Location) DirectClass

func (*Location) DirectClass() *Class

func (*Location) Equal

func (l *Location) Equal(other *Location) bool

func (*Location) Error

func (l *Location) Error() string

func (*Location) Inspect

func (l *Location) Inspect() string

func (*Location) InstanceVariables

func (*Location) InstanceVariables() *InstanceVariables

func (*Location) SingletonClass

func (*Location) SingletonClass() *Class

func (*Location) SpanValue

func (l *Location) SpanValue() *Span

type Method

type Method interface {
	Reference
	Function
	// Name of the method
	Name() Symbol
}

Elk Method object

func LookupMethodInCache

func LookupMethodInCache(class *Class, name Symbol, cacheLoc **CallCache) Method

type MethodContainer

type MethodContainer struct {
	Methods MethodMap
	Parent  *Class
}

func (*MethodContainer) AttachMethod

func (m *MethodContainer) AttachMethod(name Symbol, method Method)

Attaches the given method under the given name.

func (*MethodContainer) DefineAlias

func (m *MethodContainer) DefineAlias(newMethodName, oldMethodName Symbol)

Define an alternative name for an existing method.

func (*MethodContainer) DefineAliasString

func (m *MethodContainer) DefineAliasString(newMethodName, oldMethodName string)

Define an alternative name for an existing method.

func (*MethodContainer) LookupMethod

func (m *MethodContainer) LookupMethod(name Symbol) Method

Search for a method with the given name in this container and its ancestors.

func (*MethodContainer) Superclass

func (m *MethodContainer) Superclass() *Class

Get the superclass (skipping any mixin proxies)

type MethodMap

type MethodMap map[Symbol]Method

Map that associates methods with their names.

type Mixin

type Mixin = Class

Represents an Elk Mixin.

var CollectionBaseMixin *Mixin

::Std::Collection::Base

var ComparableMixin *Mixin // ::Std::Comparable
var ComplexConstantNodeMixin *Mixin // Std::Elk::AST::ComplexConstantNode
var ConstantNodeMixin *Mixin // Std::Elk::AST::ConstantNode
var ExpressionNodeMixin *Mixin // Std::Elk::AST::ExpressionNode
var IdentifierNodeMixin *Mixin // Std::Elk::AST::IdentifierNode
var ImmutableCollectionBaseMixin *Mixin

::Std::ImmutableCollection::Base

var InstanceVariableNodeMixin *Mixin // Std::Elk::AST::InstanceVariableNode
var IntCollectionContentNodeMixin *Mixin // Std::Elk::AST::IntCollectionContentNode
var IterableBase *Mixin

::Std::Iterable::Base

var IterableFiniteBase *Mixin

::Std::Iterable::FiniteBase

var IteratorBaseMixin *Mixin

::Std::Iterator::Base

var ListMixin *Mixin // ::Std::List
var LiteralPatternNodeMixin *Mixin // Std::Elk::AST::LiteralPatternNode
var MapMixin *Mixin // ::Std::Map
var NamedArgumentNodeMixin *Mixin // Std::Elk::AST::NamedArgumentNode
var NodeMixin *Mixin // Std::Elk::AST::Node
var ParameterNodeMixin *Mixin // Std::Elk::AST::ParameterNode
var PatternNodeMixin *Mixin // Std::Elk::AST::PatternNode
var RangeMixin *Mixin // ::Std::Range
var RecordMixin *Mixin // ::Std::Record
var RegexLiteralContentNodeMixin *Mixin // Std::Elk::AST::RegexLiteralContentNode
var RegexLiteralNodeMixin *Mixin // Std::Elk::AST::RegexLiteralNode
var SetMixin *Mixin // ::Std::Set
var SimpleStringLiteralNodeMixin *Mixin // Std::Elk::AST::SimpleStringLiteralNode
var StatementNodeMixin *Mixin // Std::Elk::AST::StatementNode
var StringLiteralContentNodeMixin *Mixin // Std::Elk::AST::StringLiteralContentNode
var StringLiteralNodeMixin *Mixin // Std::Elk::AST::StringLiteralNode
var StructBodyStatementNodeMixin *Mixin // Std::Elk::AST::StructBodyStatementNode
var SymbolCollectionContentNodeMixin *Mixin // Std::Elk::AST::SymbolCollectionContentNode
var SymbolLiteralNodeMixin *Mixin // Std::Elk::AST::SymbolLiteralNode
var TupleMixin *Mixin // ::Std::Tuple
var TypeNodeMixin *Mixin // Std::Elk::AST::TypeNode
var TypeParameterNodeMixin *Mixin // Std::Elk::AST::TypeParameterNode
var UsingEntryNodeMixin *Mixin // Std::Elk::AST::UsingEntryNode
var UsingSubentryNodeMixin *Mixin // Std::Elk::AST::UsingSubentryNode
var WordCollectionContentNodeMixin *Mixin // Std::Elk::AST::WordCollectionContentNode

func NewMixin

func NewMixin() *Mixin

Create a new mixin.

func (*Mixin) CreateProxyClass

func (m *Mixin) CreateProxyClass() *Class

Create a proxy class that has a pointer to the method map of this mixin.

Returns two values, the head and tail proxy classes. This is because of the fact that it's possible to include one mixin in another, so there is an entire inheritance chain.

type MixinOption

type MixinOption = func(*Class)

Mixin constructor option function

func MixinWithClass

func MixinWithClass(class *Class) MixinOption

func MixinWithConstants

func MixinWithConstants(constants SymbolMap) MixinOption

func MixinWithMethods

func MixinWithMethods(methods MethodMap) MixinOption

func MixinWithName

func MixinWithName(name string) MixinOption

func MixinWithParent

func MixinWithParent(parent *Class) MixinOption

type Module

type Module struct {
	ConstantContainer
	// contains filtered or unexported fields
}

Represents an Elk Module.

var DebugModule *Module // ::Std::Debug
var ElkASTModule *Module // Std::Elk::AST
var ElkModule *Module // Std::Elk
var FSModule *Module // ::Std::FS
var KernelModule *Module // ::Std::Kernel
var RootModule *Module // ::Root
var RuntimeModule *Module // ::Std::Runtime
var StdModule *Module // ::Std
var SyncModule *Module // ::Std::Sync

func NewModule

func NewModule() *Module

Create a new module.

func NewModuleWithOptions

func NewModuleWithOptions(opts ...ModuleOption) *Module

Create a new module.

func (*Module) Class

func (m *Module) Class() *Class

func (*Module) Copy

func (m *Module) Copy() Reference

func (*Module) DirectClass

func (m *Module) DirectClass() *Class

func (*Module) Error

func (m *Module) Error() string

func (*Module) Inspect

func (m *Module) Inspect() string

func (*Module) InstanceVariables

func (m *Module) InstanceVariables() *InstanceVariables

func (*Module) SetDirectClass

func (m *Module) SetDirectClass(class *Class)

func (*Module) SingletonClass

func (m *Module) SingletonClass() *Class

type ModuleOption

type ModuleOption func(*Module)

Module constructor option function.

func ModuleWithClass

func ModuleWithClass(class *Class) ModuleOption

func ModuleWithConstants

func ModuleWithConstants(constants SymbolMap) ModuleOption

func ModuleWithName

func ModuleWithName(name string) ModuleOption

func ModuleWithSingletonClass

func ModuleWithSingletonClass() ModuleOption

type Mutex

type Mutex struct {
	Native sync.Mutex
}

Wraps a Go mutex.

func NewMutex

func NewMutex() *Mutex

func (*Mutex) Class

func (*Mutex) Class() *Class

func (*Mutex) Copy

func (m *Mutex) Copy() Reference

func (*Mutex) DirectClass

func (*Mutex) DirectClass() *Class

func (*Mutex) Error

func (m *Mutex) Error() string

func (*Mutex) Inspect

func (m *Mutex) Inspect() string

func (*Mutex) InstanceVariables

func (*Mutex) InstanceVariables() *InstanceVariables

func (*Mutex) Lock

func (m *Mutex) Lock()

func (*Mutex) SingletonClass

func (*Mutex) SingletonClass() *Class

func (*Mutex) Unlock

func (m *Mutex) Unlock() (err Value)

type Native

type Native struct {
	Value any
}

Wraps a native Go value in an Elk value

func NewNative

func NewNative(value any) *Native

Create a new native value

func (*Native) Class

func (*Native) Class() *Class

func (*Native) Copy

func (n *Native) Copy() Reference

func (*Native) DirectClass

func (*Native) DirectClass() *Class

func (*Native) Error

func (n *Native) Error() string

func (*Native) Inspect

func (n *Native) Inspect() string

func (*Native) InstanceVariables

func (*Native) InstanceVariables() *InstanceVariables

func (*Native) SingletonClass

func (*Native) SingletonClass() *Class

type NativeIterator

type NativeIterator interface {
	Next() (Value, Value)
}

Represents an iterator defined in Go

type NilType

type NilType struct{}

func (NilType) Class

func (NilType) Class() *Class

func (NilType) DirectClass

func (NilType) DirectClass() *Class

func (NilType) Error

func (n NilType) Error() string

func (NilType) Hash

func (NilType) Hash() UInt64

func (NilType) Inspect

func (NilType) Inspect() string

func (NilType) InstanceVariables

func (NilType) InstanceVariables() *InstanceVariables

func (NilType) SingletonClass

func (NilType) SingletonClass() *Class

func (NilType) ToBigFloat

func (NilType) ToBigFloat() *BigFloat

func (NilType) ToChar

func (NilType) ToChar() Char

func (NilType) ToFloat

func (NilType) ToFloat() Float

func (NilType) ToFloat32

func (NilType) ToFloat32() Float32

func (NilType) ToFloat64

func (NilType) ToFloat64() Float64

func (NilType) ToInt

func (NilType) ToInt() Value

func (NilType) ToInt16

func (NilType) ToInt16() Int16

func (NilType) ToInt32

func (NilType) ToInt32() Int32

func (NilType) ToInt64

func (NilType) ToInt64() Int64

func (NilType) ToInt8

func (NilType) ToInt8() Int8

func (NilType) ToSmallInt

func (NilType) ToSmallInt() SmallInt

func (NilType) ToString

func (NilType) ToString() String

func (NilType) ToUInt16

func (NilType) ToUInt16() UInt16

func (NilType) ToUInt32

func (NilType) ToUInt32() UInt32

func (NilType) ToUInt64

func (NilType) ToUInt64() UInt64

func (NilType) ToUInt8

func (NilType) ToUInt8() UInt8

func (NilType) ToValue

func (n NilType) ToValue() Value

type Object

type Object struct {
	// contains filtered or unexported fields
}
var NotBuiltinError *Object

func Errorf

func Errorf(class *Class, format string, a ...any) *Object

Mimics fmt.Errorf but creates an Elk error value.

func NewArgumentTypeError

func NewArgumentTypeError(argName, given, expected string) *Object

Create a new error that signals that the type of the given argument is wrong.

func NewBigFloatPrecisionError

func NewBigFloatPrecisionError(precision string) *Object

Create a new error that signals that the big float precision is out of range (negative or too large).

func NewBitshiftOperandError

func NewBitshiftOperandError(other Value) *Object

Create a new error which signals that the given operand is not suitable for bit shifting

func NewCantAccessInstanceVariablesOnPrimitiveError

func NewCantAccessInstanceVariablesOnPrimitiveError(value string) *Object

Create a new error that signals that accessing instance variables of primitive values is impossible.

func NewCantSetInstanceVariablesOnPrimitiveError

func NewCantSetInstanceVariablesOnPrimitiveError(value string) *Object

Create a new error that signals that setting instance variables of primitive values is impossible.

func NewCapacityTypeError

func NewCapacityTypeError(val string) *Object

Create a new error which signals that the value can't be used as capacity.

func NewCoerceError

func NewCoerceError(target, other *Class) *Object

Create a new error which signals that a value of one type cannot be coerced into the other type.

func NewDuplicatedArgumentError

func NewDuplicatedArgumentError(methodName, paramName string) *Object

Create a new error that signals that an argument is duplicated

func NewError

func NewError(class *Class, message string) *Object

Create a new Elk error.

func NewIncompatibleDateFormatError

func NewIncompatibleDateFormatError(formatString, input string) *Object

func NewIncompatibleDateTimeFormatError

func NewIncompatibleDateTimeFormatError(formatString, input string) *Object

func NewIncompatibleTemporalFormatError

func NewIncompatibleTemporalFormatError(kind, formatString, input string) *Object

Create a new error for incompatible temporal object format, date, datetime or time.

func NewIncompatibleTimeFormatError

func NewIncompatibleTimeFormatError(formatString, input string) *Object

func NewIndexOutOfRangeError

func NewIndexOutOfRangeError(index string, length int) *Object

Create a new error that signals that the given index is out of range.

func NewInvalidSuperclassError

func NewInvalidSuperclassError(superclass string) *Object

Create a new error that signals that the given superclass is not a valid class object.

func NewIsNotClassError

func NewIsNotClassError(value string) *Object

Create a new error that signals that the given value is not a class, even though it should be.

func NewIsNotClassOrMixinError

func NewIsNotClassOrMixinError(value string) *Object

Create a new error that signals that the given value is not a class or mixin, even though it should be.

func NewIsNotMixinError

func NewIsNotMixinError(value string) *Object

Create a new error that signals that the given value is not a mixin, even though it should be.

func NewModifierMismatchError

func NewModifierMismatchError(object, modifier string, with bool) *Object

Create a new error that signals that the given class should have different modifiers.

func NewNegativeCapacityError

func NewNegativeCapacityError(capacity string) *Object

Create a new error that signals that the given capacity should not be negative.

func NewNegativeIndicesInCollectionLiteralsError

func NewNegativeIndicesInCollectionLiteralsError(index string) *Object

Create a new error that signals that negative indices cannot be used in collection literals.

func NewNoMethodError

func NewNoMethodError(methodName string, receiver Value) *Object

Create a new Std::NoMethodError.

func NewObject

func NewObject(opts ...ObjectOption) *Object

Create a new value.

func NewOpenClosureError

func NewOpenClosureError(closureVMID, VMID int64, closureInspect string) *Object

Create a new error that signals that the given index is out of range.

func NewRedefinedConstantError

func NewRedefinedConstantError(module, symbol string) *Object

Create a new Std::RedefinedConstantError

func NewRequiredArgumentMissingError

func NewRequiredArgumentMissingError(methodName, paramName string) *Object

Create a new error that signals that a required argument was not given.

func NewSingletonError

func NewSingletonError(given string) *Object

Create a new error that signals that the given object cannot have a singleton class.

func NewSuperclassMismatchError

func NewSuperclassMismatchError(class, wantSuperclass, gotSuperclass string) *Object

Create a new error that signals that the given superclass doesn't match the original one.

func NewTooLargeCapacityError

func NewTooLargeCapacityError(capacity string) *Object

Create a new error that signals that the given capacity is too large.

func NewUnexpectedNilError

func NewUnexpectedNilError() *Object

Create a new error which signals that a `nil` value has been encountered in a `must` expression

func NewUnknownArgumentsError

func NewUnknownArgumentsError(method string, names []Symbol) *Object

Create a new error that signals that some given arguments are not defined in the method.

func NewWrongArgumentCountError

func NewWrongArgumentCountError(method string, given, expected int) *Object

Create a new error that signals that the number of given arguments is wrong.

func NewWrongArgumentCountRangeError

func NewWrongArgumentCountRangeError(method string, given, expectedFrom, expectedTo int) *Object

Create a new error that signals that the number of given arguments is not within the accepted range.

func NewWrongArgumentCountRestError

func NewWrongArgumentCountRestError(method string, given, expectedFrom int) *Object

Create a new error that signals that the number of given arguments is not within the accepted range. For methods with rest parameters.

func NewWrongPositionalArgumentCountError

func NewWrongPositionalArgumentCountError(method string, given, expectedFrom int) *Object

Create a new error that signals that the number of given arguments is not within the accepted range. For methods with rest parameters.

func NewZeroDivisionError

func NewZeroDivisionError() *Object

Create a new error which signals that a the program tried to divide by zero.

func (*Object) Class

func (o *Object) Class() *Class

func (*Object) Copy

func (o *Object) Copy() Reference

func (*Object) DirectClass

func (o *Object) DirectClass() *Class

func (*Object) Error

func (e *Object) Error() string

Implement the error interface.

func (*Object) Inspect

func (o *Object) Inspect() string

func (*Object) InstanceVariables

func (o *Object) InstanceVariables() *InstanceVariables

func (*Object) Message

func (e *Object) Message() Value

Get the error message.

func (*Object) SetMessage

func (e *Object) SetMessage(message Value)

Set the error message.

func (*Object) SetMessageString

func (e *Object) SetMessageString(message string)

Set the error message.

func (*Object) SingletonClass

func (o *Object) SingletonClass() *Class

type ObjectOption

type ObjectOption = func(*Object)

Class constructor option function

func ObjectWithClass

func ObjectWithClass(class *Class) ObjectOption

func ObjectWithInstanceVariables

func ObjectWithInstanceVariables(ivars []Value) ObjectOption

func ObjectWithInstanceVariablesByName

func ObjectWithInstanceVariablesByName(ivars SymbolMap) ObjectOption

type Once

type Once struct {
	Native sync.Once
}

Wraps a Go Once.

func NewOnce

func NewOnce() *Once

func (*Once) Class

func (*Once) Class() *Class

func (*Once) Copy

func (o *Once) Copy() Reference

func (*Once) DirectClass

func (*Once) DirectClass() *Class

func (*Once) Error

func (o *Once) Error() string

func (*Once) Inspect

func (o *Once) Inspect() string

func (*Once) InstanceVariables

func (*Once) InstanceVariables() *InstanceVariables

func (*Once) SingletonClass

func (*Once) SingletonClass() *Class

type OpenRange

type OpenRange struct {
	Start Value // start value
	End   Value // end value
}

Represents an open range eg. `5<.<2`

func NewOpenRange

func NewOpenRange(start, end Value) *OpenRange

Create a new open range class.

func (*OpenRange) Class

func (*OpenRange) Class() *Class

func (*OpenRange) Copy

func (r *OpenRange) Copy() Reference

func (*OpenRange) DirectClass

func (*OpenRange) DirectClass() *Class

func (*OpenRange) Error

func (r *OpenRange) Error() string

func (*OpenRange) Inspect

func (r *OpenRange) Inspect() string

func (*OpenRange) InstanceVariables

func (r *OpenRange) InstanceVariables() *InstanceVariables

func (*OpenRange) SingletonClass

func (*OpenRange) SingletonClass() *Class

type OpenRangeIterator

type OpenRangeIterator struct {
	Range          *OpenRange
	CurrentElement Value
}

func NewOpenRangeIterator

func NewOpenRangeIterator(r *OpenRange) *OpenRangeIterator

func NewOpenRangeIteratorWithCurrentElement

func NewOpenRangeIteratorWithCurrentElement(r *OpenRange, currentElement Value) *OpenRangeIterator

func (*OpenRangeIterator) Class

func (*OpenRangeIterator) Class() *Class

func (*OpenRangeIterator) Copy

func (r *OpenRangeIterator) Copy() Reference

func (*OpenRangeIterator) DirectClass

func (*OpenRangeIterator) DirectClass() *Class

func (*OpenRangeIterator) Error

func (r *OpenRangeIterator) Error() string

func (*OpenRangeIterator) Inspect

func (r *OpenRangeIterator) Inspect() string

func (*OpenRangeIterator) InstanceVariables

func (*OpenRangeIterator) InstanceVariables() *InstanceVariables

func (*OpenRangeIterator) Reset

func (r *OpenRangeIterator) Reset()

func (*OpenRangeIterator) SingletonClass

func (*OpenRangeIterator) SingletonClass() *Class

type Pair

type Pair struct {
	Key   Value
	Value Value
}

func NewPair

func NewPair(key, val Value) *Pair

func (*Pair) Class

func (*Pair) Class() *Class

func (*Pair) Copy

func (p *Pair) Copy() Reference

func (*Pair) DirectClass

func (*Pair) DirectClass() *Class

func (*Pair) Error

func (p *Pair) Error() string

func (*Pair) Get

func (p *Pair) Get(index int) (Value, Value)

Get an element under the given index.

func (*Pair) Inspect

func (p *Pair) Inspect() string

func (*Pair) InstanceVariables

func (*Pair) InstanceVariables() *InstanceVariables

func (*Pair) Length

func (*Pair) Length() int

func (*Pair) Set

func (p *Pair) Set(index int, val Value) Value

Set an element under the given index.

func (*Pair) SingletonClass

func (*Pair) SingletonClass() *Class

func (*Pair) Subscript

func (p *Pair) Subscript(key Value) (Value, Value)

Get an element under the given index.

func (*Pair) SubscriptSet

func (p *Pair) SubscriptSet(key, val Value) Value

Set an element under the given index.

type PairIterator

type PairIterator struct {
	Pair  *Pair
	Index int
}

func NewPairIterator

func NewPairIterator(pair *Pair) *PairIterator

func NewPairIteratorWithIndex

func NewPairIteratorWithIndex(pair *Pair, index int) *PairIterator

func (*PairIterator) Class

func (*PairIterator) Class() *Class

func (*PairIterator) Copy

func (l *PairIterator) Copy() Reference

func (*PairIterator) DirectClass

func (*PairIterator) DirectClass() *Class

func (*PairIterator) Error

func (l *PairIterator) Error() string

func (*PairIterator) Inspect

func (l *PairIterator) Inspect() string

func (*PairIterator) InstanceVariables

func (*PairIterator) InstanceVariables() *InstanceVariables

func (*PairIterator) Next

func (l *PairIterator) Next() (Value, Value)

func (*PairIterator) SingletonClass

func (*PairIterator) SingletonClass() *Class

type Path

type Path struct {
	Value string
}

func BuildPath

func BuildPath(elements ...string) *Path

func NewPath

func NewPath(value string) *Path

func NewPathFromSlash

func NewPathFromSlash(value string) *Path

func (*Path) BackslashString

func (p *Path) BackslashString() string

func (*Path) Base

func (p *Path) Base() string

Returns the last element of the path. Typically this is the name of the file.

func (*Path) Class

func (*Path) Class() *Class

func (*Path) Copy

func (p *Path) Copy() Reference

func (*Path) Dir

func (p *Path) Dir() *Path

Returns a new path based on `self` omitting the last element. Typically this would result in the path to the parent directory.

func (*Path) DirectClass

func (*Path) DirectClass() *Class

func (*Path) Equal

func (p *Path) Equal(other *Path) bool

func (*Path) Error

func (p *Path) Error() string

func (*Path) Extension

func (p *Path) Extension() string

Returns the extension of the file. The extension is the suffix beginning at the final dot in the final element of path; it is empty if there is no dot.

"index" => ""; "index.js" => ".js"; "index.html.erb" => ".erb";

func (*Path) Inspect

func (p *Path) Inspect() string

func (*Path) InstanceVariables

func (*Path) InstanceVariables() *InstanceVariables

func (*Path) IsAbsolute

func (p *Path) IsAbsolute() bool

Reports whether the path is absolute.

func (*Path) IsLocal

func (p *Path) IsLocal() bool

Reports whether the path is local. It is a primitive lexical check it does not take into account symbolic links etc

func (*Path) MatchesGlob

func (p *Path) MatchesGlob(pattern string) (bool, error)

Checks whether the path matches the given glob pattern.

func (*Path) Normalize

func (p *Path) Normalize() *Path

Creates a new path based on `self` that is the shortest possible version of it based on lexical analysis.

func (*Path) SingletonClass

func (*Path) SingletonClass() *Class

func (*Path) SlashString

func (p *Path) SlashString() string

func (*Path) Split

func (p *Path) Split() []string

Split the path into individual elements separated by the OS separator (`/` or `\`)

func (*Path) String

func (p *Path) String() string

func (*Path) ToAbsolute

func (p *Path) ToAbsolute() (*Path, error)

Returns the absolute version of this path. If the path is not absolute it will be joined with the current working directory to turn it into an absolute path.

func (*Path) ToRelative

func (p *Path) ToRelative(target *Path) (*Path, error)

Creates a new path based on `target` that is relative to `self`.

func (*Path) VolumeName

func (p *Path) VolumeName() string

VolumeName returns leading volume name. Given "C:\foo\bar" it returns "C:" on Windows. Given "\\host\share\foo" it returns "\\host\share". On other platforms it returns "".

type Position

type Position position.Position

func (*Position) Class

func (*Position) Class() *Class

func (*Position) Copy

func (p *Position) Copy() Reference

func (*Position) DirectClass

func (*Position) DirectClass() *Class

func (*Position) Equal

func (p *Position) Equal(other *Position) bool

func (*Position) Error

func (p *Position) Error() string

func (*Position) Inspect

func (p *Position) Inspect() string

func (*Position) InstanceVariables

func (*Position) InstanceVariables() *InstanceVariables

func (*Position) SimpleInspect

func (p *Position) SimpleInspect() string

func (*Position) SingletonClass

func (*Position) SingletonClass() *Class

type ROMutex

type ROMutex struct {
	RWMutex *RWMutex
}

Wraps a RWMutex.

func NewROMutex

func NewROMutex(rwmutex *RWMutex) *ROMutex

func (*ROMutex) Class

func (*ROMutex) Class() *Class

func (*ROMutex) Copy

func (m *ROMutex) Copy() Reference

func (*ROMutex) DirectClass

func (*ROMutex) DirectClass() *Class

func (*ROMutex) Error

func (m *ROMutex) Error() string

func (*ROMutex) Inspect

func (m *ROMutex) Inspect() string

func (*ROMutex) InstanceVariables

func (*ROMutex) InstanceVariables() *InstanceVariables

func (*ROMutex) Lock

func (m *ROMutex) Lock()

func (*ROMutex) SingletonClass

func (*ROMutex) SingletonClass() *Class

func (*ROMutex) Unlock

func (m *ROMutex) Unlock() (err Value)

type RWMutex

type RWMutex struct {
	Native sync.RWMutex
}

Wraps a Go RWMutex.

func NewRWMutex

func NewRWMutex() *RWMutex

func (*RWMutex) Class

func (*RWMutex) Class() *Class

func (*RWMutex) Copy

func (m *RWMutex) Copy() Reference

func (*RWMutex) DirectClass

func (*RWMutex) DirectClass() *Class

func (*RWMutex) Error

func (m *RWMutex) Error() string

func (*RWMutex) Inspect

func (m *RWMutex) Inspect() string

func (*RWMutex) InstanceVariables

func (*RWMutex) InstanceVariables() *InstanceVariables

func (*RWMutex) Lock

func (m *RWMutex) Lock()

func (*RWMutex) ReadLock

func (m *RWMutex) ReadLock()

func (*RWMutex) ReadUnlock

func (m *RWMutex) ReadUnlock() (err Value)

func (*RWMutex) SingletonClass

func (*RWMutex) SingletonClass() *Class

func (*RWMutex) Unlock

func (m *RWMutex) Unlock() (err Value)

type Reference

type Reference interface {
	Class() *Class                         // Return the class of the value
	DirectClass() *Class                   // Return the direct class of this value that will be searched for methods first
	SingletonClass() *Class                // Return the singleton class of this value that holds methods unique to this object
	InstanceVariables() *InstanceVariables // Returns a pointer to the slice of instance vars of this value, nil if value doesn't support instance vars
	Copy() Reference                       // Creates a shallow copy of the reference. If the value is immutable, no copying should be done, the same value should be returned.
	Inspect() string                       // Returns the string representation of the value
	Error() string                         // Implements the error interface
}

Elk Reference Value

type Regex

type Regex struct {
	Re     regexp.Regexp
	Source string
	Flags  bitfield.BitField8
}

Elk's compiled regex

func CompileRegex

func CompileRegex(src string, flags bitfield.BitField8) (*Regex, error)

func MustCompileRegex

func MustCompileRegex(src string, flags bitfield.BitField8) *Regex

func NewRegex

func NewRegex(re regexp.Regexp, src string, flags bitfield.BitField8) *Regex

func (*Regex) Class

func (*Regex) Class() *Class

func (*Regex) ConcatVal

func (r *Regex) ConcatVal(other Value) (Value, Value)

Create a new regex concatenating r with other

func (*Regex) Copy

func (r *Regex) Copy() Reference

func (*Regex) DirectClass

func (*Regex) DirectClass() *Class

func (*Regex) Equal

func (r *Regex) Equal(other Value) Value

Check whether r is equal to other

func (*Regex) Error

func (r *Regex) Error() string

func (*Regex) Hash

func (r *Regex) Hash() UInt64

func (*Regex) Inspect

func (r *Regex) Inspect() string

func (*Regex) InstanceVariables

func (r *Regex) InstanceVariables() *InstanceVariables

func (*Regex) LaxEqualVal

func (r *Regex) LaxEqualVal(other Value) Value

Check whether r is equal to other

func (*Regex) Matches

func (r *Regex) Matches(other Value) (Value, Value)

Check whether the regex matches the given string

func (*Regex) MatchesString

func (r *Regex) MatchesString(other string) bool

Check whether the regex matches the given string

func (*Regex) RepeatVal

func (r *Regex) RepeatVal(other Value) (Value, Value)

RepeatVal the content of this Regex n times and return a new Regex.

func (*Regex) SingletonClass

func (*Regex) SingletonClass() *Class

func (*Regex) String

func (r *Regex) String() string

func (*Regex) ToString

func (r *Regex) ToString() String

func (*Regex) ToStringWithFlags

func (r *Regex) ToStringWithFlags() String

func (*Regex) WriteSourceTo

func (r *Regex) WriteSourceTo(w io.StringWriter)

type Result

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

func NewErrResult

func NewErrResult(err Value) *Result

Create a new failed result

func NewOkResult

func NewOkResult(value Value) *Result

Create a new successful result

func (*Result) Class

func (*Result) Class() *Class

func (*Result) Copy

func (r *Result) Copy() Reference

func (*Result) DirectClass

func (*Result) DirectClass() *Class

func (*Result) Err

func (r *Result) Err() Value

Get the error

func (*Result) Error

func (r *Result) Error() string

func (*Result) Get

func (r *Result) Get() (value, err Value)

Get the value and the error

func (*Result) Inspect

func (r *Result) Inspect() string

func (*Result) InstanceVariables

func (*Result) InstanceVariables() *InstanceVariables

func (*Result) Ok

func (r *Result) Ok() bool

func (*Result) SingletonClass

func (*Result) SingletonClass() *Class

func (*Result) Value

func (r *Result) Value() Value

Get the value

type RightOpenRange

type RightOpenRange struct {
	Start Value // start value
	End   Value // end value
}

Represents a right open range eg. `5..<2`

func NewRightOpenRange

func NewRightOpenRange(start, end Value) *RightOpenRange

Create a new right open range class.

func (*RightOpenRange) Class

func (*RightOpenRange) Class() *Class

func (*RightOpenRange) Copy

func (r *RightOpenRange) Copy() Reference

func (*RightOpenRange) DirectClass

func (*RightOpenRange) DirectClass() *Class

func (*RightOpenRange) Error

func (r *RightOpenRange) Error() string

func (*RightOpenRange) Inspect

func (r *RightOpenRange) Inspect() string

func (*RightOpenRange) InstanceVariables

func (r *RightOpenRange) InstanceVariables() *InstanceVariables

func (*RightOpenRange) SingletonClass

func (*RightOpenRange) SingletonClass() *Class

type RightOpenRangeIterator

type RightOpenRangeIterator struct {
	Range          *RightOpenRange
	CurrentElement Value
}

func NewRightOpenRangeIterator

func NewRightOpenRangeIterator(r *RightOpenRange) *RightOpenRangeIterator

func NewRightOpenRangeIteratorWithCurrentElement

func NewRightOpenRangeIteratorWithCurrentElement(r *RightOpenRange, currentElement Value) *RightOpenRangeIterator

func (*RightOpenRangeIterator) Class

func (*RightOpenRangeIterator) Class() *Class

func (*RightOpenRangeIterator) Copy

func (*RightOpenRangeIterator) DirectClass

func (*RightOpenRangeIterator) DirectClass() *Class

func (*RightOpenRangeIterator) Error

func (r *RightOpenRangeIterator) Error() string

func (*RightOpenRangeIterator) Inspect

func (r *RightOpenRangeIterator) Inspect() string

func (*RightOpenRangeIterator) InstanceVariables

func (*RightOpenRangeIterator) InstanceVariables() *InstanceVariables

func (*RightOpenRangeIterator) Reset

func (r *RightOpenRangeIterator) Reset()

func (*RightOpenRangeIterator) SingletonClass

func (*RightOpenRangeIterator) SingletonClass() *Class

type SimpleInt

type SimpleInt interface {
	SmallInt | Int64 | Int32 | Int16 | Int8 | UInt | UInt64 | UInt32 | UInt16 | UInt8
}

All simple Elk integer types (without BigInt)

type SingedInt

type SingedInt interface {
	SmallInt | Int64 | Int32 | Int16 | Int8
}

type SmallInt

type SmallInt int

Elk's SmallInt value

func (SmallInt) AddBigFloat

func (i SmallInt) AddBigFloat(other *BigFloat) *BigFloat

func (SmallInt) AddBigInt

func (i SmallInt) AddBigInt(other *BigInt) Value

func (SmallInt) AddFloat

func (i SmallInt) AddFloat(other Float) Float

func (SmallInt) AddOverflow

func (a SmallInt) AddOverflow(b SmallInt) (result SmallInt, ok bool)

Add two small ints and check for overflow/underflow.

func (SmallInt) AddSmallInt

func (i SmallInt) AddSmallInt(other SmallInt) Value

func (SmallInt) AddVal

func (i SmallInt) AddVal(other Value) (Value, Value)

AddVal another value and return an error if something went wrong.

func (SmallInt) BitwiseAndNotVal

func (i SmallInt) BitwiseAndNotVal(other Value) (Value, Value)

Perform a bitwise AND NOT with another integer value and return an error if something went wrong.

func (SmallInt) BitwiseAndVal

func (i SmallInt) BitwiseAndVal(other Value) (Value, Value)

Perform a bitwise AND with another integer value and return an error if something went wrong.

func (SmallInt) BitwiseNot

func (i SmallInt) BitwiseNot() SmallInt

Perform bitwise NOT.

func (SmallInt) BitwiseOrVal

func (i SmallInt) BitwiseOrVal(other Value) (Value, Value)

Perform a bitwise OR with another integer value and return an error if something went wrong.

func (SmallInt) BitwiseXorVal

func (i SmallInt) BitwiseXorVal(other Value) (Value, Value)

Perform a bitwise XOR with another integer value and return an error if something went wrong.

func (SmallInt) Centuries

func (i SmallInt) Centuries() DateSpan

func (SmallInt) Class

func (SmallInt) Class() *Class

func (SmallInt) Cmp

func (x SmallInt) Cmp(y SmallInt) int

Cmp compares x and y and returns:

  -1 if x <  y
	 0 if x == y
  +1 if x >  y

func (SmallInt) CompareVal

func (i SmallInt) CompareVal(other Value) (Value, Value)

Returns 1 if i is greater than other Returns 0 if both are equal. Returns -1 if i is less than other. Returns nil if the comparison was impossible (NaN)

func (SmallInt) Days

func (i SmallInt) Days() DateSpan

func (SmallInt) Decrement

func (i SmallInt) Decrement() Value

Decrement the number and return the result.

func (SmallInt) DirectClass

func (SmallInt) DirectClass() *Class

func (SmallInt) DivideBigFloat

func (i SmallInt) DivideBigFloat(other *BigFloat) *BigFloat

func (SmallInt) DivideBigInt

func (i SmallInt) DivideBigInt(other *BigInt) (Value, Value)

func (SmallInt) DivideFloat

func (i SmallInt) DivideFloat(other Float) Float

func (SmallInt) DivideOverflow

func (a SmallInt) DivideOverflow(b SmallInt) (result SmallInt, ok bool)

Divide two small ints and check for overflow/underflow.

func (SmallInt) DivideSmallInt

func (i SmallInt) DivideSmallInt(other SmallInt) (Value, Value)

func (SmallInt) DivideVal

func (i SmallInt) DivideVal(other Value) (Value, Value)

DivideVal another value and return an error if something went wrong.

func (SmallInt) Equal

func (i SmallInt) Equal(other Value) bool

Check whether i is equal to other

func (SmallInt) EqualVal

func (i SmallInt) EqualVal(other Value) Value

Check whether i is equal to other

func (SmallInt) Error

func (i SmallInt) Error() string

func (SmallInt) ExponentiateBigFloat

func (i SmallInt) ExponentiateBigFloat(other *BigFloat) *BigFloat

func (SmallInt) ExponentiateBigInt

func (i SmallInt) ExponentiateBigInt(other *BigInt) Value

func (SmallInt) ExponentiateFloat

func (i SmallInt) ExponentiateFloat(other Float) Float

func (SmallInt) ExponentiateSmallInt

func (i SmallInt) ExponentiateSmallInt(other SmallInt) Value

func (SmallInt) ExponentiateVal

func (i SmallInt) ExponentiateVal(other Value) (Value, Value)

ExponentiateVal by another value and return an error if something went wrong.

func (SmallInt) GreaterThan

func (i SmallInt) GreaterThan(other Value) (bool, Value)

Check whether i is greater than other and return an error if something went wrong.

func (SmallInt) GreaterThanEqual

func (i SmallInt) GreaterThanEqual(other Value) (bool, Value)

Check whether i is greater than or equal to other and return an error if something went wrong.

func (SmallInt) GreaterThanEqualVal

func (i SmallInt) GreaterThanEqualVal(other Value) (Value, Value)

Check whether i is greater than or equal to other and return an error if something went wrong.

func (SmallInt) GreaterThanVal

func (i SmallInt) GreaterThanVal(other Value) (Value, Value)

Check whether i is greater than other and return an error if something went wrong.

func (SmallInt) Hash

func (i SmallInt) Hash() UInt64

func (SmallInt) Hours

func (i SmallInt) Hours() TimeSpan

func (SmallInt) Increment

func (i SmallInt) Increment() Value

Increment the number and return the result.

func (SmallInt) Inspect

func (i SmallInt) Inspect() string

func (SmallInt) InstanceVariables

func (i SmallInt) InstanceVariables() *InstanceVariables

func (SmallInt) IsEven

func (i SmallInt) IsEven() bool

func (SmallInt) IsOdd

func (i SmallInt) IsOdd() bool

func (SmallInt) LaxEqualVal

func (i SmallInt) LaxEqualVal(other Value) Value

Check whether i is equal to other (with coercion)

func (SmallInt) LeftBitshiftVal

func (i SmallInt) LeftBitshiftVal(other Value) (Value, Value)

Bitshift to the left by another integer value and return an error if something went wrong.

func (SmallInt) LessThan

func (i SmallInt) LessThan(other Value) (bool, Value)

Check whether i is less than other and return an error if something went wrong.

func (SmallInt) LessThanEqual

func (i SmallInt) LessThanEqual(other Value) (bool, Value)

Check whether i is less than or equal to other and return an error if something went wrong.

func (SmallInt) LessThanEqualVal

func (i SmallInt) LessThanEqualVal(other Value) (Value, Value)

Check whether i is less than or equal to other and return an error if something went wrong.

func (SmallInt) LessThanVal

func (i SmallInt) LessThanVal(other Value) (Value, Value)

Check whether i is less than other and return an error if something went wrong.

func (SmallInt) Microseconds

func (i SmallInt) Microseconds() TimeSpan

func (SmallInt) Millenia

func (i SmallInt) Millenia() DateSpan

func (SmallInt) Milliseconds

func (i SmallInt) Milliseconds() TimeSpan

func (SmallInt) Minutes

func (i SmallInt) Minutes() TimeSpan

func (SmallInt) ModuloVal

func (i SmallInt) ModuloVal(other Value) (Value, Value)

Perform modulo by another numeric value and return an error if something went wrong.

func (SmallInt) Months

func (i SmallInt) Months() DateSpan

func (SmallInt) MultiplyBigFloat

func (i SmallInt) MultiplyBigFloat(other *BigFloat) *BigFloat

func (SmallInt) MultiplyBigInt

func (i SmallInt) MultiplyBigInt(other *BigInt) Value

func (SmallInt) MultiplyFloat

func (i SmallInt) MultiplyFloat(other Float) Float

func (SmallInt) MultiplyOverflow

func (a SmallInt) MultiplyOverflow(b SmallInt) (result SmallInt, ok bool)

Multiply two small ints and check for overflow/underflow.

func (SmallInt) MultiplySmallInt

func (i SmallInt) MultiplySmallInt(other SmallInt) Value

func (SmallInt) MultiplyVal

func (i SmallInt) MultiplyVal(other Value) (Value, Value)

MultiplyVal another value and return an error if something went wrong.

func (SmallInt) Nanoseconds

func (i SmallInt) Nanoseconds() TimeSpan

func (SmallInt) NegateVal

func (i SmallInt) NegateVal() Value

NegateVal the number and return the result.

func (SmallInt) RightBitshiftVal

func (i SmallInt) RightBitshiftVal(other Value) (Value, Value)

Bitshift to the right by another integer value and return an error if something went wrong.

func (SmallInt) Seconds

func (i SmallInt) Seconds() TimeSpan

func (SmallInt) SingletonClass

func (SmallInt) SingletonClass() *Class

func (SmallInt) StrictEqualBool

func (i SmallInt) StrictEqualBool(other Value) bool

Check whether i is strictly equal to other

func (SmallInt) StrictEqualVal

func (i SmallInt) StrictEqualVal(other Value) Value

Check whether i is strictly equal to other

func (SmallInt) SubtractBigFloat

func (i SmallInt) SubtractBigFloat(other *BigFloat) *BigFloat

func (SmallInt) SubtractBigInt

func (i SmallInt) SubtractBigInt(other *BigInt) Value

func (SmallInt) SubtractFloat

func (i SmallInt) SubtractFloat(other Float) Float

func (SmallInt) SubtractOverflow

func (a SmallInt) SubtractOverflow(b SmallInt) (result SmallInt, ok bool)

Subtract two small ints and check for overflow/underflow.

func (SmallInt) SubtractSmallInt

func (i SmallInt) SubtractSmallInt(other SmallInt) Value

func (SmallInt) SubtractVal

func (i SmallInt) SubtractVal(other Value) (Value, Value)

Add another value and return an error if something went wrong.

func (SmallInt) ToFloat

func (i SmallInt) ToFloat() Float

Convert to Elk Float.

func (SmallInt) ToFloat32

func (i SmallInt) ToFloat32() Float32

Convert to Elk Float32.

func (SmallInt) ToFloat64

func (i SmallInt) ToFloat64() Float64

Convert to Elk Float64.

func (SmallInt) ToInt16

func (i SmallInt) ToInt16() Int16

Convert to Elk Int16.

func (SmallInt) ToInt32

func (i SmallInt) ToInt32() Int32

Convert to Elk Int32.

func (SmallInt) ToInt64

func (i SmallInt) ToInt64() Int64

Convert to Elk Int64.

func (SmallInt) ToInt8

func (i SmallInt) ToInt8() Int8

Convert to Elk Int8.

func (SmallInt) ToString

func (i SmallInt) ToString() String

Convert to Elk String.

func (SmallInt) ToUInt16

func (i SmallInt) ToUInt16() UInt16

Convert to Elk UInt16.

func (SmallInt) ToUInt32

func (i SmallInt) ToUInt32() UInt32

Convert to Elk UInt32.

func (SmallInt) ToUInt64

func (i SmallInt) ToUInt64() UInt64

Convert to Elk UInt64.

func (SmallInt) ToUInt8

func (i SmallInt) ToUInt8() UInt8

Convert to Elk UInt8.

func (SmallInt) ToValue

func (i SmallInt) ToValue() Value

func (SmallInt) Weeks

func (i SmallInt) Weeks() DateSpan

func (SmallInt) Years

func (i SmallInt) Years() DateSpan

type SmallIntIterator

type SmallIntIterator struct {
	Int     SmallInt
	Counter SmallInt
}

func NewSmallIntIterator

func NewSmallIntIterator(i SmallInt) *SmallIntIterator

func NewSmallIntIteratorWithCounter

func NewSmallIntIteratorWithCounter(i SmallInt, index SmallInt) *SmallIntIterator

func (*SmallIntIterator) Class

func (*SmallIntIterator) Class() *Class

func (*SmallIntIterator) Copy

func (l *SmallIntIterator) Copy() Reference

func (*SmallIntIterator) DirectClass

func (*SmallIntIterator) DirectClass() *Class

func (*SmallIntIterator) Error

func (l *SmallIntIterator) Error() string

func (*SmallIntIterator) Inspect

func (l *SmallIntIterator) Inspect() string

func (*SmallIntIterator) InstanceVariables

func (*SmallIntIterator) InstanceVariables() *InstanceVariables

func (*SmallIntIterator) Next

func (l *SmallIntIterator) Next() (Value, Value)

func (*SmallIntIterator) Reset

func (l *SmallIntIterator) Reset()

func (*SmallIntIterator) SingletonClass

func (*SmallIntIterator) SingletonClass() *Class

type Span

type Span position.Span

func (*Span) Class

func (*Span) Class() *Class

func (*Span) Copy

func (s *Span) Copy() Reference

func (*Span) DirectClass

func (*Span) DirectClass() *Class

func (*Span) EndPosition

func (s *Span) EndPosition() *Position

func (*Span) Equal

func (s *Span) Equal(other *Span) bool

func (*Span) Error

func (s *Span) Error() string

func (*Span) Inspect

func (s *Span) Inspect() string

func (*Span) InstanceVariables

func (*Span) InstanceVariables() *InstanceVariables

func (*Span) SingletonClass

func (*Span) SingletonClass() *Class

func (*Span) StartPosition

func (s *Span) StartPosition() *Position

type StackTrace

type StackTrace []CallFrame

func (*StackTrace) Class

func (*StackTrace) Class() *Class

func (*StackTrace) Copy

func (s *StackTrace) Copy() Reference

func (*StackTrace) DirectClass

func (*StackTrace) DirectClass() *Class

func (*StackTrace) Error

func (s *StackTrace) Error() string

func (*StackTrace) Get

func (s *StackTrace) Get(i int) (*CallFrame, Value)

func (*StackTrace) Inspect

func (s *StackTrace) Inspect() string

func (*StackTrace) InstanceVariables

func (*StackTrace) InstanceVariables() *InstanceVariables

func (*StackTrace) Length

func (s *StackTrace) Length() int

func (*StackTrace) SingletonClass

func (*StackTrace) SingletonClass() *Class

func (*StackTrace) String

func (s *StackTrace) String() string

type StackTraceIterator

type StackTraceIterator struct {
	StackTrace *StackTrace
	Index      int
}

func NewStackTraceIterator

func NewStackTraceIterator(stackTrace *StackTrace) *StackTraceIterator

func NewStackTraceIteratorWithIndex

func NewStackTraceIteratorWithIndex(stackTrace *StackTrace, index int) *StackTraceIterator

func (*StackTraceIterator) Class

func (*StackTraceIterator) Class() *Class

func (*StackTraceIterator) Copy

func (s *StackTraceIterator) Copy() Reference

func (*StackTraceIterator) DirectClass

func (*StackTraceIterator) DirectClass() *Class

func (*StackTraceIterator) Error

func (s *StackTraceIterator) Error() string

func (*StackTraceIterator) Inspect

func (s *StackTraceIterator) Inspect() string

func (*StackTraceIterator) InstanceVariables

func (*StackTraceIterator) InstanceVariables() *InstanceVariables

func (*StackTraceIterator) Next

func (s *StackTraceIterator) Next() (Value, Value)

func (*StackTraceIterator) Reset

func (s *StackTraceIterator) Reset()

func (*StackTraceIterator) SingletonClass

func (*StackTraceIterator) SingletonClass() *Class

type StrictFloat

type StrictFloat interface {
	Float64 | Float32
}

Strict floats are sized and cannot be automatically coerced to other types.

type StrictInt

type StrictInt interface {
	Int64 | Int32 | Int16 | Int8 | UInt | UInt64 | UInt32 | UInt16 | UInt8
}

Strict integers are sized and cannot be automatically coerced to other types.

type StrictNumeric

type StrictNumeric interface {
	Float64 | Float32 | Int64 | Int32 | Int16 | Int8 | UInt | UInt64 | UInt32 | UInt16 | UInt8
}

Strict numerics are sized and cannot be automatically coerced to other types.

type StrictSignedInt

type StrictSignedInt interface {
	Int64 | Int32 | Int16 | Int8
}

Strict signed integers are sized and cannot be automatically coerced to other types.

type StrictUnsignedInt

type StrictUnsignedInt interface {
	UInt | UInt64 | UInt32 | UInt16 | UInt8
}

Strict unsigned integers are sized and cannot be automatically coerced to other types.

type String

type String string

Elk's String value

func (String) ByteAt

func (s String) ByteAt(key Value) (UInt8, Value)

Get the byte under the given index.

func (String) ByteAtInt

func (s String) ByteAtInt(index int) (UInt8, Value)

Get the byte under the given index.

func (String) ByteCount

func (s String) ByteCount() int

Returns the number of bytes present in the string.

func (String) CharCount

func (s String) CharCount() int

Returns the number of unicode chars present in the string.

func (String) Class

func (s String) Class() *Class

func (String) Cmp

func (x String) Cmp(y String) int

Cmp compares x and y and returns:

-1 if x <  y
 0 if x == y
+1 if x >  y

func (String) CompareVal

func (s String) CompareVal(other Value) (Value, Value)

Returns 1 if i is greater than other Returns 0 if both are equal. Returns -1 if i is less than other. Returns nil if the comparison was impossible (NaN)

func (String) Concat

func (s String) Concat(other Value) (result String, err Value)

Concatenate another value with this string and return the result. If the operation is illegal an error will be returned.

func (String) Copy

func (s String) Copy() Reference

func (String) DirectClass

func (String) DirectClass() *Class

func (String) Equal

func (s String) Equal(other Value) bool

Check whether s is equal to other

func (String) EqualVal

func (s String) EqualVal(other Value) Value

Check whether s is equal to other

func (String) Error

func (s String) Error() string

func (String) Get

func (s String) Get(index int) (Char, Value)

Get an element under the given index.

func (String) GraphemeAt

func (s String) GraphemeAt(key Value) (String, Value)

Get the grapheme under the given index.

func (String) GraphemeAtInt

func (s String) GraphemeAtInt(index int) (String, Value)

Get the grapheme under the given index.

func (String) GraphemeCount

func (s String) GraphemeCount() int

Returns the number of grapheme clusters present in the string.

func (String) GreaterThan

func (s String) GreaterThan(other Value) (bool, Value)

Check whether s is greater than other and return an error if something went wrong.

func (String) GreaterThanEqual

func (s String) GreaterThanEqual(other Value) (bool, Value)

Check whether s is greater than or equal to other and return an error if something went wrong.

func (String) GreaterThanEqualVal

func (s String) GreaterThanEqualVal(other Value) (Value, Value)

Check whether s is greater than or equal to other and return an error if something went wrong.

func (String) GreaterThanVal

func (s String) GreaterThanVal(other Value) (Value, Value)

Check whether s is greater than other and return an error if something went wrong.

func (String) Hash

func (s String) Hash() UInt64

func (String) Inspect

func (s String) Inspect() string

func (String) InstanceVariables

func (s String) InstanceVariables() *InstanceVariables

func (String) IsEmpty

func (s String) IsEmpty() bool

func (String) LJust

func (s String) LJust(targetLen int, padding Char) String

func (String) LaxEqualBool

func (s String) LaxEqualBool(other Value) bool

Check whether s is equal to other

func (String) LaxEqualVal

func (s String) LaxEqualVal(other Value) Value

Check whether s is equal to other

func (String) LessThan

func (s String) LessThan(other Value) (bool, Value)

Check whether s is less than other and return an error if something went wrong.

func (String) LessThanEqual

func (s String) LessThanEqual(other Value) (bool, Value)

Check whether s is less than or equal to other and return an error if something went wrong.

func (String) LessThanEqualVal

func (s String) LessThanEqualVal(other Value) (Value, Value)

Check whether s is less than or equal to other and return an error if something went wrong.

func (String) LessThanVal

func (s String) LessThanVal(other Value) (Value, Value)

Check whether s is less than other and return an error if something went wrong.

func (String) Lowercase

func (s String) Lowercase() String

Return a new string that has all characters turned to lowercase.

func (String) RJust

func (s String) RJust(targetLen int, padding Char) String

func (String) RemoveSuffix

func (s String) RemoveSuffix(other Value) (String, Value)

Return a copy of the string without the given suffix.

func (String) Repeat

func (s String) Repeat(other Value) (result String, err Value)

Repeat the content of this string n times and return a new string containing the result. If the operation is illegal an error will be returned.

func (String) ReverseBytes

func (s String) ReverseBytes() String

Reverse the bytes of the string.

func (String) ReverseChars

func (s String) ReverseChars() String

Reverse the string while preserving the UTF-8 chars.

func (String) ReverseGraphemes

func (s String) ReverseGraphemes() String

Reverse the string while preserving the grapheme clusters.

func (String) SingletonClass

func (String) SingletonClass() *Class

func (String) StrictEqualVal

func (s String) StrictEqualVal(other Value) Value

Check whether s is strictly equal to other

func (String) String

func (s String) String() string

func (String) Subscript

func (s String) Subscript(key Value) (Char, Value)

Get the character under the given index.

func (String) ToChar

func (s String) ToChar() (Char, bool)

Convert this String to a Char. Returns (Char, true) if the conversion was successful. Returns (0, false) if the conversion failed.

func (String) ToInt

func (s String) ToInt(base int) (Value, Value)

Convert this String to an Int.

func (String) ToSymbol

func (s String) ToSymbol() Symbol

Convert the String to a Symbol

func (String) Uppercase

func (s String) Uppercase() String

Return a new string that has all characters turned to uppercase.

type StringByteIterator

type StringByteIterator struct {
	String     String
	ByteOffset int
}

func NewStringByteIterator

func NewStringByteIterator(str String) *StringByteIterator

func NewStringByteIteratorWithByteOffset

func NewStringByteIteratorWithByteOffset(str String, offset int) *StringByteIterator

func (*StringByteIterator) Class

func (*StringByteIterator) Class() *Class

func (*StringByteIterator) Copy

func (s *StringByteIterator) Copy() Reference

func (*StringByteIterator) DirectClass

func (*StringByteIterator) DirectClass() *Class

func (*StringByteIterator) Error

func (s *StringByteIterator) Error() string

func (*StringByteIterator) Inspect

func (s *StringByteIterator) Inspect() string

func (*StringByteIterator) InstanceVariables

func (*StringByteIterator) InstanceVariables() *InstanceVariables

func (*StringByteIterator) Next

func (s *StringByteIterator) Next() (Value, Value)

func (*StringByteIterator) Reset

func (s *StringByteIterator) Reset()

func (*StringByteIterator) SingletonClass

func (*StringByteIterator) SingletonClass() *Class

type StringCharIterator

type StringCharIterator struct {
	String     String
	ByteOffset int
}

func NewStringCharIterator

func NewStringCharIterator(str String) *StringCharIterator

func NewStringCharIteratorWithByteOffset

func NewStringCharIteratorWithByteOffset(str String, offset int) *StringCharIterator

func (*StringCharIterator) Class

func (*StringCharIterator) Class() *Class

func (*StringCharIterator) Copy

func (s *StringCharIterator) Copy() Reference

func (*StringCharIterator) DirectClass

func (*StringCharIterator) DirectClass() *Class

func (*StringCharIterator) Error

func (s *StringCharIterator) Error() string

func (*StringCharIterator) Inspect

func (s *StringCharIterator) Inspect() string

func (*StringCharIterator) InstanceVariables

func (*StringCharIterator) InstanceVariables() *InstanceVariables

func (*StringCharIterator) Next

func (s *StringCharIterator) Next() (Value, Value)

func (*StringCharIterator) Reset

func (s *StringCharIterator) Reset()

func (*StringCharIterator) SingletonClass

func (*StringCharIterator) SingletonClass() *Class

type StringGraphemeIterator

type StringGraphemeIterator struct {
	String String
	Rest   string
	State  int
}

func NewStringGraphemeIterator

func NewStringGraphemeIterator(str String) *StringGraphemeIterator

func NewStringGraphemeIteratorWithRestAndState

func NewStringGraphemeIteratorWithRestAndState(str String, rest string, state int) *StringGraphemeIterator

func (*StringGraphemeIterator) Class

func (*StringGraphemeIterator) Class() *Class

func (*StringGraphemeIterator) Copy

func (*StringGraphemeIterator) DirectClass

func (*StringGraphemeIterator) DirectClass() *Class

func (*StringGraphemeIterator) Error

func (s *StringGraphemeIterator) Error() string

func (*StringGraphemeIterator) Inspect

func (s *StringGraphemeIterator) Inspect() string

func (*StringGraphemeIterator) InstanceVariables

func (*StringGraphemeIterator) InstanceVariables() *InstanceVariables

func (*StringGraphemeIterator) Next

func (s *StringGraphemeIterator) Next() (Value, Value)

func (*StringGraphemeIterator) Reset

func (s *StringGraphemeIterator) Reset()

func (*StringGraphemeIterator) SingletonClass

func (*StringGraphemeIterator) SingletonClass() *Class

type Symbol

type Symbol int

Numerical ID of a particular symbol.

func ToSymbol

func ToSymbol[T ~string](str T) Symbol

Convert a string to a Symbol

func (Symbol) Class

func (Symbol) Class() *Class

func (Symbol) DirectClass

func (Symbol) DirectClass() *Class

func (Symbol) Equal

func (s Symbol) Equal(other Value) bool

Check whether s is equal to other

func (Symbol) EqualVal

func (s Symbol) EqualVal(other Value) Value

Check whether s is equal to other

func (Symbol) Error

func (s Symbol) Error() string

func (Symbol) Hash

func (s Symbol) Hash() UInt64

func (Symbol) Inspect

func (s Symbol) Inspect() string

func (Symbol) InspectContent

func (s Symbol) InspectContent() string

func (Symbol) InstanceVariables

func (s Symbol) InstanceVariables() *InstanceVariables

func (Symbol) LaxEqualVal

func (s Symbol) LaxEqualVal(other Value) Value

Check whether s is equal to other

func (Symbol) SingletonClass

func (Symbol) SingletonClass() *Class

func (Symbol) StrictEqualVal

func (s Symbol) StrictEqualVal(other Value) Value

Check whether s is equal to other

func (Symbol) String

func (s Symbol) String() string

func (Symbol) ToString

func (s Symbol) ToString() String

func (Symbol) ToValue

func (s Symbol) ToValue() Value

type SymbolMap

type SymbolMap map[Symbol]Value

Simple map with symbol keys.

func (SymbolMap) Class

func (SymbolMap) Class() *Class

func (SymbolMap) Copy

func (s SymbolMap) Copy() Reference

func (SymbolMap) Delete

func (s SymbolMap) Delete(key Symbol)

func (SymbolMap) DeleteString

func (s SymbolMap) DeleteString(key string)

func (SymbolMap) DirectClass

func (SymbolMap) DirectClass() *Class

func (SymbolMap) Error

func (s SymbolMap) Error() string

func (SymbolMap) Get

func (s SymbolMap) Get(key Symbol) Value

Get a value stored using the given key.

func (SymbolMap) GetString

func (s SymbolMap) GetString(key string) (val Value)

Get a value stored using the given key.

func (SymbolMap) Has

func (s SymbolMap) Has(key Symbol) bool

Check if the given key exists.

func (SymbolMap) HasString

func (s SymbolMap) HasString(key string) bool

Check if the given key exists.

func (SymbolMap) Inspect

func (s SymbolMap) Inspect() string

func (SymbolMap) InstanceVariables

func (s SymbolMap) InstanceVariables() *InstanceVariables

func (SymbolMap) Set

func (s SymbolMap) Set(key Symbol, val Value)

Set the passed value under the given key.

func (SymbolMap) SetString

func (s SymbolMap) SetString(key string, val Value)

Set the passed value under the given key.

func (SymbolMap) SingletonClass

func (SymbolMap) SingletonClass() *Class

type SymbolTableOption

type SymbolTableOption func(*SymbolTableStruct)

func SymbolTableWithIdTable

func SymbolTableWithIdTable(idTable []string) SymbolTableOption

func SymbolTableWithNameTable

func SymbolTableWithNameTable(nameTable map[string]Symbol) SymbolTableOption

type SymbolTableStruct

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

Data structure that holds Elk Symbols.

var SymbolTable *SymbolTableStruct = NewSymbolTable()

The global Symbol Table of the Elk interpreter.

func NewSymbolTable

func NewSymbolTable(opts ...SymbolTableOption) *SymbolTableStruct

func (*SymbolTableStruct) Add

func (s *SymbolTableStruct) Add(name string) Symbol

Add a new symbol with the specified name. This function is idempotent, if the Symbol already exists nothing happens and a pointer to it gets returned. This function is thread-safe.

func (*SymbolTableStruct) Exists

func (s *SymbolTableStruct) Exists(name string) bool

Check if a symbol with the given name exists. This function is thread-safe.

func (*SymbolTableStruct) ExistsId

func (s *SymbolTableStruct) ExistsId(symbol Symbol) bool

Check if a given symbol exists.

func (*SymbolTableStruct) Get

func (s *SymbolTableStruct) Get(name string) (Symbol, bool)

Get the Symbol with the specified name. This function is thread-safe.

func (*SymbolTableStruct) GetName

func (s *SymbolTableStruct) GetName(symbol Symbol) (string, bool)

Get the name of the given symbol. This function is thread-safe.

type SyncDiagnosticList

type SyncDiagnosticList diagnostic.SyncDiagnosticList

func (*SyncDiagnosticList) Append

func (dl *SyncDiagnosticList) Append(elements ...*Diagnostic)

Add new elements.

func (*SyncDiagnosticList) At

func (dl *SyncDiagnosticList) At(i int) *Diagnostic

Get an element under the given index without bounds checking

func (*SyncDiagnosticList) Capacity

func (dl *SyncDiagnosticList) Capacity() int

func (*SyncDiagnosticList) Class

func (*SyncDiagnosticList) Class() *Class

func (*SyncDiagnosticList) Concat

func (l *SyncDiagnosticList) Concat(other Value) (*ArrayList, Value)

Concatenate another value with this list, creating a new list, and return the result. If the operation is illegal an error will be returned.

func (*SyncDiagnosticList) Copy

func (d *SyncDiagnosticList) Copy() Reference

func (*SyncDiagnosticList) DirectClass

func (*SyncDiagnosticList) DirectClass() *Class

func (*SyncDiagnosticList) Error

func (d *SyncDiagnosticList) Error() string

func (*SyncDiagnosticList) Get

func (dl *SyncDiagnosticList) Get(index int) (Value, Value)

Get an element under the given index.

func (*SyncDiagnosticList) Grow

func (dl *SyncDiagnosticList) Grow(newSlots int)

Expand the array list to have empty slots for new elements.

func (*SyncDiagnosticList) Inspect

func (d *SyncDiagnosticList) Inspect() string

func (*SyncDiagnosticList) InstanceVariables

func (*SyncDiagnosticList) InstanceVariables() *InstanceVariables

func (*SyncDiagnosticList) LeftCapacity

func (l *SyncDiagnosticList) LeftCapacity() int

func (*SyncDiagnosticList) Length

func (dl *SyncDiagnosticList) Length() int

func (*SyncDiagnosticList) Repeat

func (l *SyncDiagnosticList) Repeat(other Value) (*SyncDiagnosticList, Value)

Repeat the content of this list n times and return a new list containing the result. If the operation is illegal an error will be returned.

func (*SyncDiagnosticList) Set

func (l *SyncDiagnosticList) Set(index int, val *Diagnostic) Value

Set an element under the given index.

func (*SyncDiagnosticList) SetAt

func (l *SyncDiagnosticList) SetAt(index int, val *Diagnostic)

Set an element under the given index without bounds checking.

func (*SyncDiagnosticList) SingletonClass

func (*SyncDiagnosticList) SingletonClass() *Class

func (*SyncDiagnosticList) Subscript

func (dl *SyncDiagnosticList) Subscript(key Value) (Value, Value)

Get an element under the given index.

func (*SyncDiagnosticList) SubscriptSet

func (dl *SyncDiagnosticList) SubscriptSet(key Value, val *Diagnostic) Value

Set an element under the given index.

type SyncDiagnosticListIterator

type SyncDiagnosticListIterator struct {
	SyncDiagnosticList *SyncDiagnosticList
	Index              int
}

func NewSyncDiagnosticListIterator

func NewSyncDiagnosticListIterator(list *SyncDiagnosticList) *SyncDiagnosticListIterator

func NewSyncDiagnosticListIteratorWithIndex

func NewSyncDiagnosticListIteratorWithIndex(list *SyncDiagnosticList, index int) *SyncDiagnosticListIterator

func (*SyncDiagnosticListIterator) Class

func (*SyncDiagnosticListIterator) Copy

func (*SyncDiagnosticListIterator) DirectClass

func (*SyncDiagnosticListIterator) DirectClass() *Class

func (*SyncDiagnosticListIterator) Error

func (*SyncDiagnosticListIterator) Inspect

func (l *SyncDiagnosticListIterator) Inspect() string

func (*SyncDiagnosticListIterator) InstanceVariables

func (*SyncDiagnosticListIterator) InstanceVariables() *InstanceVariables

func (*SyncDiagnosticListIterator) Next

func (l *SyncDiagnosticListIterator) Next() (Value, Value)

func (*SyncDiagnosticListIterator) Reset

func (l *SyncDiagnosticListIterator) Reset()

func (*SyncDiagnosticListIterator) SingletonClass

func (*SyncDiagnosticListIterator) SingletonClass() *Class

type Time

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

Represents a time of day: hour, minute, second, nanosecond.

func MakeTime

func MakeTime(hour, min, sec, millisec, microsec, nsec int) Time

Create a new Time value.

func TimeNow

func TimeNow() Time

func (Time) Add

func (t Time) Add(val TimeSpan) Time

Adds the given duration to the time. Returns a new time structure.

func (Time) AttosecondsInSecond

func (t Time) AttosecondsInSecond() int64

func (Time) Class

func (Time) Class() *Class

func (Time) Cmp

func (t Time) Cmp(other Time) int

func (Time) Copy

func (t Time) Copy() Reference

func (Time) Diff

func (t Time) Diff(val Time) TimeSpan

Calculates the difference between two time values. Returns a duration.

func (Time) DirectClass

func (Time) DirectClass() *Class

func (Time) Equal

func (t Time) Equal(other Value) bool

func (Time) Error

func (t Time) Error() string

func (Time) FemtosecondsInSecond

func (t Time) FemtosecondsInSecond() int64

func (Time) Format

func (t Time) Format(formatString string) (_ string, err Value)

Create a string formatted according to the given format string.

func (Time) GreaterThan

func (t Time) GreaterThan(other Time) bool

func (Time) GreaterThanEqual

func (t Time) GreaterThanEqual(other Time) bool

func (Time) Hour

func (t Time) Hour() int

Hour in a 24 hour clock.

func (Time) Hour12

func (t Time) Hour12() int

Hour in a twelve hour clock.

func (Time) Inspect

func (t Time) Inspect() string

func (Time) InstanceVariables

func (Time) InstanceVariables() *InstanceVariables

func (Time) IsAM

func (t Time) IsAM() bool

Whether the current hour is AM.

func (Time) IsPM

func (t Time) IsPM() bool

Whether the current hour is PM.

func (Time) LessThan

func (t Time) LessThan(other Time) bool

func (Time) LessThanEqual

func (t Time) LessThanEqual(other Time) bool

func (Time) Meridiem

func (t Time) Meridiem() string

func (Time) MeridiemLowercase

func (t Time) MeridiemLowercase() string

func (Time) Microsecond

func (t Time) Microsecond() int

func (Time) MicrosecondsInSecond

func (t Time) MicrosecondsInSecond() int

func (Time) Millisecond

func (t Time) Millisecond() int

func (Time) MillisecondsInSecond

func (t Time) MillisecondsInSecond() int

func (Time) Minute

func (t Time) Minute() int

func (Time) MustFormat

func (t Time) MustFormat(formatString string) string

func (Time) Nanosecond

func (t Time) Nanosecond() int

func (Time) NanosecondsInSecond

func (t Time) NanosecondsInSecond() int

func (Time) Normalise

func (t Time) Normalise() Time

func (Time) PicosecondsInSecond

func (t Time) PicosecondsInSecond() int64

func (Time) Second

func (t Time) Second() int

func (Time) SingletonClass

func (Time) SingletonClass() *Class

func (Time) String

func (t Time) String() string

func (Time) Subtract

func (t Time) Subtract(val Value) (Value, Value)

func (Time) SubtractTimeSpan

func (t Time) SubtractTimeSpan(val TimeSpan) Time

Subtracts the given duration from the time. Returns a new time structure.

func (Time) ToDateTime

func (t Time) ToDateTime() *DateTime

func (Time) ToDateTimeValue

func (t Time) ToDateTimeValue() DateTime

func (Time) ToString

func (t Time) ToString() String

func (Time) ToTimeSpan

func (t Time) ToTimeSpan() TimeSpan

func (Time) ToValue

func (t Time) ToValue() Value

func (Time) YoctosecondsInSecond

func (t Time) YoctosecondsInSecond() *BigInt

func (Time) ZeptosecondsInSecond

func (t Time) ZeptosecondsInSecond() *BigInt

type TimeSpan

type TimeSpan time.Duration

Represents the elapsed time between two Times as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. Wraps Go's time.Duration.

func DurationSince

func DurationSince(t DateTime) TimeSpan

func DurationUntil

func DurationUntil(t DateTime) TimeSpan

func MakeTimeSpan

func MakeTimeSpan(hours, mins, secs, millisecs, microsecs, nsecs int) TimeSpan

Create a new Time Span value.

func (TimeSpan) Add

func (t TimeSpan) Add(other Value) (Value, Value)

func (TimeSpan) AddDateSpan

func (t TimeSpan) AddDateSpan(other DateSpan) *DateTimeSpan

func (TimeSpan) AddDateTimeSpan

func (t TimeSpan) AddDateTimeSpan(other *DateTimeSpan) *DateTimeSpan

func (TimeSpan) AddTimeSpan

func (t TimeSpan) AddTimeSpan(other TimeSpan) TimeSpan

func (TimeSpan) Class

func (TimeSpan) Class() *Class

func (TimeSpan) Cmp

func (t TimeSpan) Cmp(other TimeSpan) int

func (TimeSpan) Copy

func (t TimeSpan) Copy() Reference

func (TimeSpan) Days

func (t TimeSpan) Days() int

func (TimeSpan) DirectClass

func (TimeSpan) DirectClass() *Class

func (TimeSpan) Divide

func (t TimeSpan) Divide(other Value) (TimeSpan, Value)

func (TimeSpan) DivideBigFloat

func (t TimeSpan) DivideBigFloat(other *BigFloat) (TimeSpan, Value)

func (TimeSpan) DivideBigInt

func (t TimeSpan) DivideBigInt(other *BigInt) (TimeSpan, Value)

func (TimeSpan) DivideFloat

func (t TimeSpan) DivideFloat(other Float) (TimeSpan, Value)

func (TimeSpan) DivideInt

func (t TimeSpan) DivideInt(other Value) (TimeSpan, Value)

func (TimeSpan) DivideSmallInt

func (t TimeSpan) DivideSmallInt(other SmallInt) (TimeSpan, Value)

func (TimeSpan) Equal

func (t TimeSpan) Equal(other Value) bool

func (TimeSpan) Error

func (t TimeSpan) Error() string

func (TimeSpan) Go

func (t TimeSpan) Go() time.Duration

func (TimeSpan) GreaterThan

func (t TimeSpan) GreaterThan(other TimeSpan) bool

func (TimeSpan) GreaterThanEqual

func (t TimeSpan) GreaterThanEqual(other TimeSpan) bool

func (TimeSpan) Hours

func (t TimeSpan) Hours() int

func (TimeSpan) InDays

func (t TimeSpan) InDays() Float

func (TimeSpan) InHours

func (t TimeSpan) InHours() Float

func (TimeSpan) InMicroseconds

func (t TimeSpan) InMicroseconds() Float

func (TimeSpan) InMilliseconds

func (t TimeSpan) InMilliseconds() Float

func (TimeSpan) InMinutes

func (t TimeSpan) InMinutes() Float

func (TimeSpan) InMonths

func (t TimeSpan) InMonths() Float

func (TimeSpan) InNanoseconds

func (t TimeSpan) InNanoseconds() Float

func (TimeSpan) InSeconds

func (t TimeSpan) InSeconds() Float

func (TimeSpan) InWeeks

func (t TimeSpan) InWeeks() Float

func (TimeSpan) InYears

func (t TimeSpan) InYears() Float

func (TimeSpan) Inspect

func (t TimeSpan) Inspect() string

func (TimeSpan) InstanceVariables

func (TimeSpan) InstanceVariables() *InstanceVariables

func (TimeSpan) LessThan

func (t TimeSpan) LessThan(other TimeSpan) bool

func (TimeSpan) LessThanEqual

func (t TimeSpan) LessThanEqual(other TimeSpan) bool

func (TimeSpan) Microseconds

func (t TimeSpan) Microseconds() int

func (TimeSpan) Milliseconds

func (t TimeSpan) Milliseconds() int

func (TimeSpan) Minutes

func (t TimeSpan) Minutes() int

func (TimeSpan) Months

func (t TimeSpan) Months() int

func (TimeSpan) Multiply

func (t TimeSpan) Multiply(other Value) (TimeSpan, Value)

func (TimeSpan) MultiplyBigFloat

func (t TimeSpan) MultiplyBigFloat(other *BigFloat) TimeSpan

func (TimeSpan) MultiplyBigInt

func (t TimeSpan) MultiplyBigInt(other *BigInt) TimeSpan

func (TimeSpan) MultiplyFloat

func (t TimeSpan) MultiplyFloat(other Float) TimeSpan

func (TimeSpan) MultiplyInt

func (t TimeSpan) MultiplyInt(other Value) TimeSpan

func (TimeSpan) MultiplySmallInt

func (t TimeSpan) MultiplySmallInt(other SmallInt) TimeSpan

func (TimeSpan) Nanoseconds

func (t TimeSpan) Nanoseconds() int

func (TimeSpan) Seconds

func (t TimeSpan) Seconds() int

func (TimeSpan) SingletonClass

func (TimeSpan) SingletonClass() *Class

func (TimeSpan) String

func (t TimeSpan) String() string

func (TimeSpan) Subtract

func (t TimeSpan) Subtract(other Value) (Value, Value)

func (TimeSpan) SubtractDateSpan

func (t TimeSpan) SubtractDateSpan(other DateSpan) *DateTimeSpan

func (TimeSpan) SubtractDateTimeSpan

func (t TimeSpan) SubtractDateTimeSpan(other *DateTimeSpan) *DateTimeSpan

func (TimeSpan) SubtractTimeSpan

func (t TimeSpan) SubtractTimeSpan(other TimeSpan) TimeSpan

func (TimeSpan) ToDateTimeSpan

func (t TimeSpan) ToDateTimeSpan() *DateTimeSpan

func (TimeSpan) ToString

func (t TimeSpan) ToString() String

func (TimeSpan) ToTime

func (t TimeSpan) ToTime() Time

func (TimeSpan) ToValue

func (t TimeSpan) ToValue() Value

func (TimeSpan) TotalDays

func (t TimeSpan) TotalDays() Value

func (TimeSpan) TotalHours

func (t TimeSpan) TotalHours() Value

func (TimeSpan) TotalMicroseconds

func (t TimeSpan) TotalMicroseconds() Value

func (TimeSpan) TotalMilliseconds

func (t TimeSpan) TotalMilliseconds() Value

func (TimeSpan) TotalMinutes

func (t TimeSpan) TotalMinutes() Value

func (TimeSpan) TotalMonths

func (t TimeSpan) TotalMonths() Value

func (TimeSpan) TotalNanoseconds

func (t TimeSpan) TotalNanoseconds() Value

func (TimeSpan) TotalSeconds

func (t TimeSpan) TotalSeconds() Value

func (TimeSpan) TotalWeeks

func (t TimeSpan) TotalWeeks() Value

func (TimeSpan) TotalYears

func (t TimeSpan) TotalYears() Value

type Timezone

type Timezone time.Location

Elk's Timezone value

func MustLoadTimezone

func MustLoadTimezone(name string) *Timezone

func NewFixedTimezone

func NewFixedTimezone(hour, minute, second int) *Timezone

func NewTimezone

func NewTimezone(loc *time.Location) *Timezone

Create a new Timezone object.

func NewTimezoneFromOffset

func NewTimezoneFromOffset(offset TimeSpan) *Timezone

Create a new timezone based on a fixed offset.

func (*Timezone) Class

func (*Timezone) Class() *Class

func (*Timezone) Copy

func (t *Timezone) Copy() Reference

func (*Timezone) DSTOffset

func (t *Timezone) DSTOffset() TimeSpan

func (*Timezone) DirectClass

func (*Timezone) DirectClass() *Class

func (*Timezone) Equal

func (t *Timezone) Equal(other Value) bool

func (*Timezone) Error

func (t *Timezone) Error() string

func (*Timezone) Inspect

func (t *Timezone) Inspect() string

func (*Timezone) InstanceVariables

func (t *Timezone) InstanceVariables() *InstanceVariables

func (*Timezone) IsLocal

func (t *Timezone) IsLocal() bool

func (*Timezone) IsUTC

func (t *Timezone) IsUTC() bool

func (*Timezone) Name

func (t *Timezone) Name() string

func (*Timezone) Offsets

func (t *Timezone) Offsets() (TimeSpan, TimeSpan)

Returns the standard and DST offsets.

func (*Timezone) SingletonClass

func (*Timezone) SingletonClass() *Class

func (*Timezone) StandardOffset

func (t *Timezone) StandardOffset() TimeSpan

func (*Timezone) ToGoLocation

func (t *Timezone) ToGoLocation() *time.Location

type ToValuer

type ToValuer interface {
	ToValue() Value
}

type TrueType

type TrueType struct{}

func (TrueType) Class

func (TrueType) Class() *Class

func (TrueType) DirectClass

func (TrueType) DirectClass() *Class

func (TrueType) Error

func (t TrueType) Error() string

func (TrueType) Hash

func (TrueType) Hash() UInt64

func (TrueType) Inspect

func (TrueType) Inspect() string

func (TrueType) InstanceVariables

func (TrueType) InstanceVariables() *InstanceVariables

func (TrueType) SingletonClass

func (TrueType) SingletonClass() *Class

func (TrueType) ToValue

func (TrueType) ToValue() Value

type UInt

type UInt uint64

func (UInt) Add

func (i UInt) Add(other Value) (UInt, Value)

func (UInt) BitwiseAnd

func (i UInt) BitwiseAnd(other Value) (UInt, Value)

Perform a bitwise AND.

func (UInt) BitwiseAndNot

func (i UInt) BitwiseAndNot(other Value) (UInt, Value)

Perform a bitwise AND NOT.

func (UInt) BitwiseOr

func (i UInt) BitwiseOr(other Value) (UInt, Value)

Perform a bitwise OR.

func (UInt) BitwiseXor

func (i UInt) BitwiseXor(other Value) (UInt, Value)

Perform a bitwise XOR.

func (UInt) Class

func (UInt) Class() *Class

func (UInt) CompareVal

func (i UInt) CompareVal(other Value) (Value, Value)

func (UInt) DirectClass

func (UInt) DirectClass() *Class

func (UInt) Divide

func (i UInt) Divide(other Value) (UInt, Value)

func (UInt) Equal

func (i UInt) Equal(other Value) bool

func (UInt) EqualVal

func (i UInt) EqualVal(other Value) Value

func (UInt) Error

func (i UInt) Error() string

func (UInt) ExponentiateVal

func (i UInt) ExponentiateVal(other Value) (UInt, Value)

func (UInt) GreaterThan

func (i UInt) GreaterThan(other Value) (bool, Value)

func (UInt) GreaterThanEqual

func (i UInt) GreaterThanEqual(other Value) (bool, Value)

func (UInt) GreaterThanEqualVal

func (i UInt) GreaterThanEqualVal(other Value) (Value, Value)

func (UInt) GreaterThanVal

func (i UInt) GreaterThanVal(other Value) (Value, Value)

func (UInt) Hash

func (i UInt) Hash() UInt64

func (UInt) Inspect

func (i UInt) Inspect() string

func (UInt) InstanceVariables

func (i UInt) InstanceVariables() *InstanceVariables

func (UInt) LessThan

func (i UInt) LessThan(other Value) (bool, Value)

func (UInt) LessThanEqual

func (i UInt) LessThanEqual(other Value) (bool, Value)

func (UInt) LessThanEqualVal

func (i UInt) LessThanEqualVal(other Value) (Value, Value)

func (UInt) LessThanVal

func (i UInt) LessThanVal(other Value) (Value, Value)

func (UInt) ModuloVal

func (i UInt) ModuloVal(other Value) (UInt, Value)

func (UInt) Multiply

func (i UInt) Multiply(other Value) (UInt, Value)

func (UInt) SingletonClass

func (UInt) SingletonClass() *Class

func (UInt) StrictEqualVal

func (i UInt) StrictEqualVal(other Value) Value

func (UInt) Subtract

func (i UInt) Subtract(other Value) (UInt, Value)

func (UInt) ToFloat

func (i UInt) ToFloat() Float

Convert to Elk Float.

func (UInt) ToFloat32

func (i UInt) ToFloat32() Float32

Convert to Elk Float32.

func (UInt) ToFloat64

func (i UInt) ToFloat64() Float64

Convert to Elk Float64.

func (UInt) ToInt16

func (i UInt) ToInt16() Int16

Convert to Elk Int16.

func (UInt) ToInt32

func (i UInt) ToInt32() Int32

Convert to Elk Int32.

func (UInt) ToInt64

func (i UInt) ToInt64() Int64

Convert to Elk Int64.

func (UInt) ToInt8

func (i UInt) ToInt8() Int8

Convert to Elk Int8.

func (UInt) ToSmallInt

func (i UInt) ToSmallInt() SmallInt

Convert to Elk SmallInt.

func (UInt) ToString

func (i UInt) ToString() String

Convert to Elk String.

func (UInt) ToUInt16

func (i UInt) ToUInt16() UInt16

Convert to Elk UInt16.

func (UInt) ToUInt32

func (i UInt) ToUInt32() UInt32

Convert to Elk UInt32.

func (UInt) ToUInt64

func (i UInt) ToUInt64() UInt64

Convert to Elk UInt64.

func (UInt) ToUInt8

func (i UInt) ToUInt8() UInt8

Convert to Elk UInt8.

func (UInt) ToValue

func (i UInt) ToValue() Value

type UInt16

type UInt16 uint16

Elk's UInt16 value

func MustParseUInt16

func MustParseUInt16(s string) UInt16

func (UInt16) Add

func (i UInt16) Add(other Value) (UInt16, Value)

func (UInt16) BitwiseAnd

func (i UInt16) BitwiseAnd(other Value) (UInt16, Value)

Perform a bitwise AND.

func (UInt16) BitwiseAndNot

func (i UInt16) BitwiseAndNot(other Value) (UInt16, Value)

Perform a bitwise AND NOT.

func (UInt16) BitwiseOr

func (i UInt16) BitwiseOr(other Value) (UInt16, Value)

Perform a bitwise OR.

func (UInt16) BitwiseXor

func (i UInt16) BitwiseXor(other Value) (UInt16, Value)

Perform a bitwise XOR.

func (UInt16) Class

func (UInt16) Class() *Class

func (UInt16) CompareVal

func (i UInt16) CompareVal(other Value) (Value, Value)

func (UInt16) DirectClass

func (UInt16) DirectClass() *Class

func (UInt16) Divide

func (i UInt16) Divide(other Value) (UInt16, Value)

func (UInt16) Equal

func (i UInt16) Equal(other Value) bool

func (UInt16) EqualVal

func (i UInt16) EqualVal(other Value) Value

func (UInt16) Error

func (i UInt16) Error() string

func (UInt16) ExponentiateVal

func (i UInt16) ExponentiateVal(other Value) (UInt16, Value)

func (UInt16) GreaterThan

func (i UInt16) GreaterThan(other Value) (bool, Value)

func (UInt16) GreaterThanEqual

func (i UInt16) GreaterThanEqual(other Value) (bool, Value)

func (UInt16) GreaterThanEqualVal

func (i UInt16) GreaterThanEqualVal(other Value) (Value, Value)

func (UInt16) GreaterThanVal

func (i UInt16) GreaterThanVal(other Value) (Value, Value)

func (UInt16) Hash

func (i UInt16) Hash() UInt64

func (UInt16) Inspect

func (i UInt16) Inspect() string

func (UInt16) InstanceVariables

func (i UInt16) InstanceVariables() *InstanceVariables

func (UInt16) LessThan

func (i UInt16) LessThan(other Value) (bool, Value)

func (UInt16) LessThanEqual

func (i UInt16) LessThanEqual(other Value) (bool, Value)

func (UInt16) LessThanEqualVal

func (i UInt16) LessThanEqualVal(other Value) (Value, Value)

func (UInt16) LessThanVal

func (i UInt16) LessThanVal(other Value) (Value, Value)

func (UInt16) ModuloVal

func (i UInt16) ModuloVal(other Value) (UInt16, Value)

func (UInt16) Multiply

func (i UInt16) Multiply(other Value) (UInt16, Value)

func (UInt16) SingletonClass

func (UInt16) SingletonClass() *Class

func (UInt16) StrictEqualVal

func (i UInt16) StrictEqualVal(other Value) Value

func (UInt16) Subtract

func (i UInt16) Subtract(other Value) (UInt16, Value)

func (UInt16) ToFloat

func (i UInt16) ToFloat() Float

Convert to Elk Float.

func (UInt16) ToFloat32

func (i UInt16) ToFloat32() Float32

Convert to Elk Float32.

func (UInt16) ToFloat64

func (i UInt16) ToFloat64() Float64

Convert to Elk Float64.

func (UInt16) ToInt16

func (i UInt16) ToInt16() Int16

Convert to Elk Int16.

func (UInt16) ToInt32

func (i UInt16) ToInt32() Int32

Convert to Elk Int32.

func (UInt16) ToInt64

func (i UInt16) ToInt64() Int64

Convert to Elk Int64.

func (UInt16) ToInt8

func (i UInt16) ToInt8() Int8

Convert to Elk Int8.

func (UInt16) ToSmallInt

func (i UInt16) ToSmallInt() SmallInt

Convert to Elk SmallInt.

func (UInt16) ToString

func (i UInt16) ToString() String

Convert to Elk String.

func (UInt16) ToUInt

func (i UInt16) ToUInt() UInt

Convert to Elk UInt.

func (UInt16) ToUInt32

func (i UInt16) ToUInt32() UInt32

Convert to Elk UInt32.

func (UInt16) ToUInt64

func (i UInt16) ToUInt64() UInt64

Convert to Elk UInt64.

func (UInt16) ToUInt8

func (i UInt16) ToUInt8() UInt8

Convert to Elk UInt8.

func (UInt16) ToValue

func (i UInt16) ToValue() Value

type UInt32

type UInt32 uint32

Elk's UInt32 value

func MustParseUInt32

func MustParseUInt32(s string) UInt32

func (UInt32) Add

func (i UInt32) Add(other Value) (UInt32, Value)

func (UInt32) BitwiseAnd

func (i UInt32) BitwiseAnd(other Value) (UInt32, Value)

Perform a bitwise AND.

func (UInt32) BitwiseAndNot

func (i UInt32) BitwiseAndNot(other Value) (UInt32, Value)

Perform a bitwise AND NOT.

func (UInt32) BitwiseOr

func (i UInt32) BitwiseOr(other Value) (UInt32, Value)

Perform a bitwise OR.

func (UInt32) BitwiseXor

func (i UInt32) BitwiseXor(other Value) (UInt32, Value)

Perform a bitwise XOR.

func (UInt32) Class

func (UInt32) Class() *Class

func (UInt32) CompareVal

func (i UInt32) CompareVal(other Value) (Value, Value)

func (UInt32) DirectClass

func (UInt32) DirectClass() *Class

func (UInt32) Divide

func (i UInt32) Divide(other Value) (UInt32, Value)

func (UInt32) Equal

func (i UInt32) Equal(other Value) bool

func (UInt32) EqualVal

func (i UInt32) EqualVal(other Value) Value

func (UInt32) Error

func (i UInt32) Error() string

func (UInt32) ExponentiateVal

func (i UInt32) ExponentiateVal(other Value) (UInt32, Value)

func (UInt32) GreaterThan

func (i UInt32) GreaterThan(other Value) (bool, Value)

func (UInt32) GreaterThanEqual

func (i UInt32) GreaterThanEqual(other Value) (bool, Value)

func (UInt32) GreaterThanEqualVal

func (i UInt32) GreaterThanEqualVal(other Value) (Value, Value)

func (UInt32) GreaterThanVal

func (i UInt32) GreaterThanVal(other Value) (Value, Value)

func (UInt32) Hash

func (i UInt32) Hash() UInt64

func (UInt32) Inspect

func (i UInt32) Inspect() string

func (UInt32) InstanceVariables

func (i UInt32) InstanceVariables() *InstanceVariables

func (UInt32) LessThan

func (i UInt32) LessThan(other Value) (bool, Value)

func (UInt32) LessThanEqual

func (i UInt32) LessThanEqual(other Value) (bool, Value)

func (UInt32) LessThanEqualVal

func (i UInt32) LessThanEqualVal(other Value) (Value, Value)

func (UInt32) LessThanVal

func (i UInt32) LessThanVal(other Value) (Value, Value)

func (UInt32) ModuloVal

func (i UInt32) ModuloVal(other Value) (UInt32, Value)

func (UInt32) Multiply

func (i UInt32) Multiply(other Value) (UInt32, Value)

func (UInt32) SingletonClass

func (UInt32) SingletonClass() *Class

func (UInt32) StrictEqualVal

func (i UInt32) StrictEqualVal(other Value) Value

func (UInt32) Subtract

func (i UInt32) Subtract(other Value) (UInt32, Value)

func (UInt32) ToFloat

func (i UInt32) ToFloat() Float

Convert to Elk Float.

func (UInt32) ToFloat32

func (i UInt32) ToFloat32() Float32

Convert to Elk Float32.

func (UInt32) ToFloat64

func (i UInt32) ToFloat64() Float64

Convert to Elk Float64.

func (UInt32) ToInt16

func (i UInt32) ToInt16() Int16

Convert to Elk Int16.

func (UInt32) ToInt32

func (i UInt32) ToInt32() Int32

Convert to Elk Int32.

func (UInt32) ToInt64

func (i UInt32) ToInt64() Int64

Convert to Elk Int64.

func (UInt32) ToInt8

func (i UInt32) ToInt8() Int8

Convert to Elk Int8.

func (UInt32) ToSmallInt

func (i UInt32) ToSmallInt() SmallInt

Convert to Elk SmallInt.

func (UInt32) ToString

func (i UInt32) ToString() String

Convert to Elk String.

func (UInt32) ToUInt

func (i UInt32) ToUInt() UInt

Convert to Elk UInt.

func (UInt32) ToUInt16

func (i UInt32) ToUInt16() UInt16

Convert to Elk UInt16.

func (UInt32) ToUInt64

func (i UInt32) ToUInt64() UInt64

Convert to Elk UInt64.

func (UInt32) ToUInt8

func (i UInt32) ToUInt8() UInt8

Convert to Elk UInt8.

func (UInt32) ToValue

func (i UInt32) ToValue() Value

type UInt64

type UInt64 uint64

Elk's UInt64 value

func MustParseUInt64

func MustParseUInt64(s string) UInt64

func (UInt64) Add

func (i UInt64) Add(other Value) (UInt64, Value)

func (UInt64) BitwiseAnd

func (i UInt64) BitwiseAnd(other Value) (UInt64, Value)

Perform a bitwise AND.

func (UInt64) BitwiseAndNot

func (i UInt64) BitwiseAndNot(other Value) (UInt64, Value)

Perform a bitwise AND NOT.

func (UInt64) BitwiseOr

func (i UInt64) BitwiseOr(other Value) (UInt64, Value)

Perform a bitwise OR.

func (UInt64) BitwiseXor

func (i UInt64) BitwiseXor(other Value) (UInt64, Value)

Perform a bitwise XOR.

func (UInt64) Class

func (UInt64) Class() *Class

func (UInt64) CompareVal

func (i UInt64) CompareVal(other Value) (Value, Value)

func (UInt64) Copy

func (i UInt64) Copy() Reference

func (UInt64) DirectClass

func (UInt64) DirectClass() *Class

func (UInt64) Divide

func (i UInt64) Divide(other Value) (UInt64, Value)

func (UInt64) Equal

func (i UInt64) Equal(other Value) bool

func (UInt64) EqualVal

func (i UInt64) EqualVal(other Value) Value

func (UInt64) Error

func (i UInt64) Error() string

func (UInt64) ExponentiateVal

func (i UInt64) ExponentiateVal(other Value) (UInt64, Value)

func (UInt64) GreaterThan

func (i UInt64) GreaterThan(other Value) (bool, Value)

func (UInt64) GreaterThanEqual

func (i UInt64) GreaterThanEqual(other Value) (bool, Value)

func (UInt64) GreaterThanEqualVal

func (i UInt64) GreaterThanEqualVal(other Value) (Value, Value)

func (UInt64) GreaterThanVal

func (i UInt64) GreaterThanVal(other Value) (Value, Value)

func (UInt64) Hash

func (i UInt64) Hash() UInt64

func (UInt64) Inspect

func (i UInt64) Inspect() string

func (UInt64) InstanceVariables

func (i UInt64) InstanceVariables() *InstanceVariables

func (UInt64) LessThan

func (i UInt64) LessThan(other Value) (bool, Value)

func (UInt64) LessThanEqual

func (i UInt64) LessThanEqual(other Value) (bool, Value)

func (UInt64) LessThanEqualVal

func (i UInt64) LessThanEqualVal(other Value) (Value, Value)

func (UInt64) LessThanVal

func (i UInt64) LessThanVal(other Value) (Value, Value)

func (UInt64) ModuloVal

func (i UInt64) ModuloVal(other Value) (UInt64, Value)

func (UInt64) Multiply

func (i UInt64) Multiply(other Value) (UInt64, Value)

func (UInt64) SingletonClass

func (UInt64) SingletonClass() *Class

func (UInt64) StrictEqualVal

func (i UInt64) StrictEqualVal(other Value) Value

func (UInt64) Subtract

func (i UInt64) Subtract(other Value) (UInt64, Value)

func (UInt64) ToFloat

func (i UInt64) ToFloat() Float

Convert to Elk Float.

func (UInt64) ToFloat32

func (i UInt64) ToFloat32() Float32

Convert to Elk Float32.

func (UInt64) ToFloat64

func (i UInt64) ToFloat64() Float64

Convert to Elk Float64.

func (UInt64) ToInt16

func (i UInt64) ToInt16() Int16

Convert to Elk Int16.

func (UInt64) ToInt32

func (i UInt64) ToInt32() Int32

Convert to Elk Int32.

func (UInt64) ToInt64

func (i UInt64) ToInt64() Int64

Convert to Elk Int64.

func (UInt64) ToInt8

func (i UInt64) ToInt8() Int8

Convert to Elk Int8.

func (UInt64) ToSmallInt

func (i UInt64) ToSmallInt() SmallInt

Convert to Elk SmallInt.

func (UInt64) ToString

func (i UInt64) ToString() String

Convert to Elk String.

func (UInt64) ToUInt

func (i UInt64) ToUInt() UInt

Convert to Elk UInt.

func (UInt64) ToUInt16

func (i UInt64) ToUInt16() UInt16

Convert to Elk UInt16.

func (UInt64) ToUInt32

func (i UInt64) ToUInt32() UInt32

Convert to Elk UInt32.

func (UInt64) ToUInt8

func (i UInt64) ToUInt8() UInt8

Convert to Elk UInt8.

func (UInt64) ToValue

func (i UInt64) ToValue() Value

type UInt8

type UInt8 uint8

Elk's UInt8 value

func MustParseUInt8

func MustParseUInt8(s string) UInt8

func (UInt8) Add

func (i UInt8) Add(other Value) (UInt8, Value)

func (UInt8) BitwiseAnd

func (i UInt8) BitwiseAnd(other Value) (UInt8, Value)

Perform a bitwise AND.

func (UInt8) BitwiseAndNot

func (i UInt8) BitwiseAndNot(other Value) (UInt8, Value)

Perform a bitwise AND NOT.

func (UInt8) BitwiseOr

func (i UInt8) BitwiseOr(other Value) (UInt8, Value)

Perform a bitwise OR.

func (UInt8) BitwiseXor

func (i UInt8) BitwiseXor(other Value) (UInt8, Value)

Perform a bitwise XOR.

func (UInt8) Class

func (UInt8) Class() *Class

func (UInt8) CompareVal

func (i UInt8) CompareVal(other Value) (Value, Value)

func (UInt8) DirectClass

func (UInt8) DirectClass() *Class

func (UInt8) Divide

func (i UInt8) Divide(other Value) (UInt8, Value)

func (UInt8) Equal

func (i UInt8) Equal(other Value) bool

func (UInt8) EqualVal

func (i UInt8) EqualVal(other Value) Value

func (UInt8) Error

func (i UInt8) Error() string

func (UInt8) ExponentiateVal

func (i UInt8) ExponentiateVal(other Value) (UInt8, Value)

func (UInt8) GreaterThan

func (i UInt8) GreaterThan(other Value) (bool, Value)

func (UInt8) GreaterThanEqual

func (i UInt8) GreaterThanEqual(other Value) (bool, Value)

func (UInt8) GreaterThanEqualVal

func (i UInt8) GreaterThanEqualVal(other Value) (Value, Value)

func (UInt8) GreaterThanVal

func (i UInt8) GreaterThanVal(other Value) (Value, Value)

func (UInt8) Hash

func (i UInt8) Hash() UInt64

func (UInt8) Inspect

func (i UInt8) Inspect() string

func (UInt8) InstanceVariables

func (i UInt8) InstanceVariables() *InstanceVariables

func (UInt8) LessThan

func (i UInt8) LessThan(other Value) (bool, Value)

func (UInt8) LessThanEqual

func (i UInt8) LessThanEqual(other Value) (bool, Value)

func (UInt8) LessThanEqualVal

func (i UInt8) LessThanEqualVal(other Value) (Value, Value)

func (UInt8) LessThanVal

func (i UInt8) LessThanVal(other Value) (Value, Value)

func (UInt8) ModuloVal

func (i UInt8) ModuloVal(other Value) (UInt8, Value)

func (UInt8) Multiply

func (i UInt8) Multiply(other Value) (UInt8, Value)

func (UInt8) SingletonClass

func (UInt8) SingletonClass() *Class

func (UInt8) StrictEqualVal

func (i UInt8) StrictEqualVal(other Value) Value

func (UInt8) Subtract

func (i UInt8) Subtract(other Value) (UInt8, Value)

func (UInt8) ToFloat

func (i UInt8) ToFloat() Float

Convert to Elk Float.

func (UInt8) ToFloat32

func (i UInt8) ToFloat32() Float32

Convert to Elk Float32.

func (UInt8) ToFloat64

func (i UInt8) ToFloat64() Float64

Convert to Elk Float64.

func (UInt8) ToInt16

func (i UInt8) ToInt16() Int16

Convert to Elk Int16.

func (UInt8) ToInt32

func (i UInt8) ToInt32() Int32

Convert to Elk Int32.

func (UInt8) ToInt64

func (i UInt8) ToInt64() Int64

Convert to Elk Int64.

func (UInt8) ToInt8

func (i UInt8) ToInt8() Int8

Convert to Elk Int8.

func (UInt8) ToSmallInt

func (i UInt8) ToSmallInt() SmallInt

Convert to Elk SmallInt.

func (UInt8) ToString

func (i UInt8) ToString() String

Convert to Elk String.

func (UInt8) ToUInt

func (i UInt8) ToUInt() UInt

Convert to Elk UInt.

func (UInt8) ToUInt16

func (i UInt8) ToUInt16() UInt16

Convert to Elk UInt16.

func (UInt8) ToUInt32

func (i UInt8) ToUInt32() UInt32

Convert to Elk UInt32.

func (UInt8) ToUInt64

func (i UInt8) ToUInt64() UInt64

Convert to Elk UInt64.

func (UInt8) ToValue

func (i UInt8) ToValue() Value

type UndefinedType

type UndefinedType struct{}

Elk's internal undefined value. Serves as a sentinel value that indicates that no "real" value is present.

It is the zero value of `Value` and maps to Go's `nil`

func (UndefinedType) Class

func (UndefinedType) Class() *Class

func (UndefinedType) DirectClass

func (UndefinedType) DirectClass() *Class

func (UndefinedType) Error

func (u UndefinedType) Error() string

func (UndefinedType) Inspect

func (UndefinedType) Inspect() string

func (UndefinedType) InstanceVariables

func (UndefinedType) InstanceVariables() *InstanceVariables

func (UndefinedType) SingletonClass

func (UndefinedType) SingletonClass() *Class

func (UndefinedType) ToValue

func (u UndefinedType) ToValue() Value

type UnsignedInt

type UnsignedInt interface {
	UInt | UInt64 | UInt32 | UInt16 | UInt8
}

type Value

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

`undefined` is the zero value of `Value`, it maps directly to Go `nil`

var Nil Value = NilType{}.ToValue()

Elk's Nil value

func AddVal

func AddVal(left, right Value) (result, err Value)

AddVal two values. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func ArrayListConstructor

func ArrayListConstructor(class *Class) Value

func ArrayTupleConstructor

func ArrayTupleConstructor(class *Class) Value

func BitwiseAndNotVal

func BitwiseAndNotVal(left, right Value) (result, err Value)

Execute a bitwise AND NOT &^. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func BitwiseAndVal

func BitwiseAndVal(left, right Value) (result, err Value)

Execute a bitwise AND &. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func BitwiseNotVal

func BitwiseNotVal(operand Value) Value

Perform bitwise not on a value When successful returns result. When there are no builtin negation functions for the given type returns nil.

func BitwiseOrVal

func BitwiseOrVal(left, right Value) (result, err Value)

Execute a bitwise OR |. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func BitwiseXorVal

func BitwiseXorVal(left, right Value) (result, err Value)

Execute a bitwise XOR ^. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func BoxConstructor

func BoxConstructor(class *Class) Value

func ClassConstructor

func ClassConstructor(metaClass *Class) Value

Used by the VM, create a new class.

func CompareVal

func CompareVal(left, right Value) (result, err Value)

CompareVal two values. Returns 1 if left is greater than right. Returns 0 if both are equal. Returns -1 if left is less than right.

When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func DecrementVal

func DecrementVal(operand Value) Value

DecrementVal a value When successful returns result. When there are no builtin negation functions for the given type returns nil.

func DiagnosticConstructor

func DiagnosticConstructor(class *Class) Value

Creates a new Diagnostic.

func DiagnosticListConstructor

func DiagnosticListConstructor(class *Class) Value

Creates a new DiagnosticList.

func DivideVal

func DivideVal(left, right Value) (result, err Value)

DivideVal two values When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func EqualVal

func EqualVal(left, right Value) Value

Check whether left is equal to right. When successful returns (result). When there are no builtin addition functions for the given type returns (undefined).

func ExponentiateVal

func ExponentiateVal(left, right Value) (result, err Value)

ExponentiateVal two values When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func GetConstant

func GetConstant(name Symbol) Value

func GetFromSlice

func GetFromSlice[V any](collection *[]V, index int) (ret V, err Value)

Get an element under the given index.

func GetInstanceVariableByName

func GetInstanceVariableByName(object Value, name Symbol) (val, err Value)

Get an object's instance variable with the given name

func GreaterThan

func GreaterThan(left, right Value) (result bool, err Value)

func GreaterThanEqual

func GreaterThanEqual(left, right Value) (result bool, err Value)

func GreaterThanEqualVal

func GreaterThanEqualVal(left, right Value) (result, err Value)

Check whether left is greater than or equal to right. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func GreaterThanVal

func GreaterThanVal(left, right Value) (result, err Value)

Check whether left is greater than right. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func HashMapConstructor

func HashMapConstructor(class *Class) Value

func HashRecordConstructor

func HashRecordConstructor(class *Class) Value

func ImmutableBoxConstructor

func ImmutableBoxConstructor(class *Class) Value

func IncrementVal

func IncrementVal(operand Value) Value

IncrementVal a value When successful returns result. When there are no builtin negation functions for the given type returns nil.

func InterfaceConstructor

func InterfaceConstructor(class *Class) Value

Used by the VM, create a new interface value.

func Iter

func Iter(val Value) Value

Get the iterator of the value

func LaxEqualVal

func LaxEqualVal(left, right Value) Value

Check whether left is equal to right. When successful returns (result). When there are no builtin addition functions for the given type returns (nil).

func LaxNotEqualVal

func LaxNotEqualVal(left, right Value) Value

Check whether left is not equal to right. When successful returns (result). When there are no builtin addition functions for the given type returns (nil).

func LeftBitshiftVal

func LeftBitshiftVal(left, right Value) (result, err Value)

Execute a left bit shift <<. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func LessThan

func LessThan(left, right Value) (result bool, err Value)

func LessThanEqual

func LessThanEqual(left, right Value) (result bool, err Value)

func LessThanEqualVal

func LessThanEqualVal(left, right Value) (result, err Value)

Check whether left is less than or equal to right. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin functions for the given type returns (undefined, undefined).

func LessThanVal

func LessThanVal(left, right Value) (result, err Value)

Check whether left is less than right. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func LocationConstructor

func LocationConstructor(class *Class) Value

Creates a new Location.

func LogicalLeftBitshiftVal

func LogicalLeftBitshiftVal(left, right Value) (result, err Value)

Execute a logical left bit shift <<<. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func LogicalRightBitshiftVal

func LogicalRightBitshiftVal(left, right Value) (result, err Value)

Execute a logical right bit shift >>>. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func MakeSentinelValue

func MakeSentinelValue() Value

func MixinConstructor

func MixinConstructor(class *Class) Value

Used by the VM, create a new mixin.

func ModuleConstructor

func ModuleConstructor(class *Class) Value

Used by the VM, create a new module value.

func ModuloVal

func ModuloVal(left, right Value) (result, err Value)

Perform modulo on two values When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func MultiplyVal

func MultiplyVal(left, right Value) (result, err Value)

MultiplyVal two values When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func MustParseInt

func MustParseInt(s string, base int) Value

func MutexConstructor

func MutexConstructor(class *Class) Value

func NegateInt

func NegateInt(val Value) Value

func NegateVal

func NegateVal(operand Value) Value

NegateVal a value When successful returns result. When there are no builtin negation functions for the given type returns nil.

func Next

func Next(val Value) (result, err Value)

Call `next`

func NormalizeArrayIndex

func NormalizeArrayIndex(index, length int) (int, Value)

func NotEqualVal

func NotEqualVal(left, right Value) Value

Check whether left is not equal to right. When successful returns (result). When there are no builtin addition functions for the given type returns (nil).

func ObjectConstructor

func ObjectConstructor(class *Class) Value

Creates a new value.

func OnceConstructor

func OnceConstructor(class *Class) Value

func PairConstructor

func PairConstructor(class *Class) Value

Creates a new Pair.

func PositionConstructor

func PositionConstructor(class *Class) Value

Creates a new Position.

func ROMutexConstructor

func ROMutexConstructor(class *Class) Value

func RWMutexConstructor

func RWMutexConstructor(class *Class) Value

func Ref

func Ref(ref Reference) Value

Convert a Reference to a Value

func RightBitshiftVal

func RightBitshiftVal(left, right Value) (result, err Value)

Execute a right bit shift >>. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func SetInSlice

func SetInSlice[V any](collection *[]V, index int, val V) (err Value)

Set an element under the given index.

func SetInstanceVariableByName

func SetInstanceVariableByName(object Value, name Symbol, val Value) (err Value)

Set an object's instance variable with the given name to the given value

func SpanConstructor

func SpanConstructor(class *Class) Value

Creates a new Span.

func StrictEqualVal

func StrictEqualVal(left, right Value) Value

Check whether left is strictly equal to right. When successful returns (result). When there are no builtin addition functions for the given type returns (nil).

func StrictFloatLaxEqual

func StrictFloatLaxEqual[T StrictFloat](left T, right Value) Value

Check whether the left float is equal to right.

func StrictIntLeftBitshift

func StrictIntLeftBitshift[T StrictInt](left T, right Value) (T, Value)

Bitshift a strict int to the left.

func StrictIntLogicalLeftBitshift

func StrictIntLogicalLeftBitshift[T StrictInt](left T, right Value, shiftFunc logicalShiftFunc[T]) (T, Value)

Bitshift a strict int to the left.

func StrictIntLogicalRightBitshift

func StrictIntLogicalRightBitshift[T StrictInt](left T, right Value, shiftFunc logicalShiftFunc[T]) (T, Value)

Logically bitshift a strict int to the right.

func StrictIntRightBitshift

func StrictIntRightBitshift[T StrictInt](left T, right Value) (T, Value)

Bitshift a strict int to the right.

func StrictNotEqualVal

func StrictNotEqualVal(left, right Value) Value

Check whether left is strictly not equal to right. When successful returns (result). When there are no builtin addition functions for the given type returns (nil).

func StrictParseInt

func StrictParseInt(s string, base int, bitSize int) (int64, Value)

Parses a signed strict integer from a string using Elk syntax.

func StrictParseIntWithErr

func StrictParseIntWithErr(s string, base int, bitSize int, formatErr *Class) (int64, Value)

Parses a signed strict integer from a string using Elk syntax.

func StrictParseUint

func StrictParseUint(s string, base int, bitSize int) (uint64, Value)

Parses an unsigned strict integer from a string using Elk syntax.

func StrictParseUintWithErr

func StrictParseUintWithErr(s string, base int, bitSize int, formatErr *Class) (uint64, Value)

Parses an unsigned strict integer from a string using Elk syntax.

func StrictSignedIntLaxEqual

func StrictSignedIntLaxEqual[T StrictSignedInt](left T, right Value) Value

Check whether the left signed integer is equal to right.

func StrictUnsignedIntLaxEqual

func StrictUnsignedIntLaxEqual[T StrictUnsignedInt](left T, right Value) Value

Check whether the left unsigned integer is equal to right.

func SubscriptSet

func SubscriptSet(collection, key, val Value) (err Value)

Set an element under the given key. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func SubscriptVal

func SubscriptVal(collection, key Value) (result, err Value)

Get an element by key. When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func SubtractVal

func SubtractVal(left, right Value) (result, err Value)

SubtractVal two values When successful returns (result, undefined). When an error occurred returns (undefined, error). When there are no builtin addition functions for the given type returns (undefined, undefined).

func SyncDiagnosticListConstructor

func SyncDiagnosticListConstructor(class *Class) Value

Creates a new SyncDiagnosticList.

func ToBool

func ToBool(val Value) Value

Converts an Elk Value to an Elk Bool.

func ToElkBool

func ToElkBool(val bool) Value

Convert a Go bool value to Elk.

func ToElkInt

func ToElkInt(i int64) Value

Convert Go int64 to Elk Int.

func ToNotBool

func ToNotBool(val Value) Value

Converts an Elk Value to an Elk Bool and negates it.

func UnaryPlusVal

func UnaryPlusVal(operand Value) Value

Perform unary plus on a value When successful returns result. When there are no builtin negation functions for the given type returns nil.

func UndefinedConstructor

func UndefinedConstructor(class *Class) Value

func WaitGroupConstructor

func WaitGroupConstructor(class *Class) Value

func (Value) AsAnyInt

func (v Value) AsAnyInt() int

func (Value) AsBigInt

func (v Value) AsBigInt() *BigInt

func (Value) AsChar

func (v Value) AsChar() Char

func (Value) AsDate

func (v Value) AsDate() Date

func (Value) AsDateSpan

func (v Value) AsDateSpan() DateSpan

func (Value) AsDateSpanOk

func (v Value) AsDateSpanOk() (DateSpan, bool)

func (Value) AsFalse

func (v Value) AsFalse() FalseType

func (Value) AsFloat

func (v Value) AsFloat() Float

func (Value) AsFloat32

func (v Value) AsFloat32() Float32

func (Value) AsFloat64

func (v Value) AsFloat64() Float64

func (Value) AsInlineDateSpan

func (v Value) AsInlineDateSpan() DateSpan

func (Value) AsInlineFloat64

func (v Value) AsInlineFloat64() Float64

func (Value) AsInlineInt64

func (v Value) AsInlineInt64() Int64

func (Value) AsInlineSymbol

func (v Value) AsInlineSymbol() Symbol

func (Value) AsInlineTime

func (v Value) AsInlineTime() Time

func (Value) AsInlineTimeSpan

func (v Value) AsInlineTimeSpan() TimeSpan

func (Value) AsInlineUInt64

func (v Value) AsInlineUInt64() UInt64

func (Value) AsInt

func (v Value) AsInt() int

func (Value) AsInt16

func (v Value) AsInt16() Int16

func (Value) AsInt32

func (v Value) AsInt32() Int32

func (Value) AsInt64

func (v Value) AsInt64() Int64

func (Value) AsInt8

func (v Value) AsInt8() Int8

func (Value) AsNativeInt64

func (v Value) AsNativeInt64() int64

func (Value) AsNil

func (v Value) AsNil() NilType

func (Value) AsReference

func (v Value) AsReference() Reference

func (Value) AsSmallInt

func (v Value) AsSmallInt() SmallInt

func (Value) AsString

func (v Value) AsString() String

func (Value) AsTime

func (v Value) AsTime() Time

func (Value) AsTimeOk

func (v Value) AsTimeOk() (Time, bool)

func (Value) AsTimeSpan

func (v Value) AsTimeSpan() TimeSpan

func (Value) AsTimeSpanOk

func (v Value) AsTimeSpanOk() (TimeSpan, bool)

func (Value) AsTrue

func (v Value) AsTrue() TrueType

func (Value) AsUInt

func (v Value) AsUInt() UInt

func (Value) AsUInt16

func (v Value) AsUInt16() UInt16

func (Value) AsUInt32

func (v Value) AsUInt32() UInt32

func (Value) AsUInt64

func (v Value) AsUInt64() UInt64

func (Value) AsUInt8

func (v Value) AsUInt8() UInt8

func (Value) AsUndefined

func (v Value) AsUndefined() UndefinedType

func (Value) AsWeak

func (v Value) AsWeak() Weak

func (Value) Class

func (v Value) Class() *Class

func (Value) Copy

func (v Value) Copy() Value

func (Value) DirectClass

func (v Value) DirectClass() *Class

func (Value) Error

func (v Value) Error() string

func (Value) Inspect

func (v Value) Inspect() string

func (Value) InstanceVariables

func (v Value) InstanceVariables() *InstanceVariables

func (Value) IsChar

func (v Value) IsChar() bool

func (Value) IsDate

func (v Value) IsDate() bool

func (Value) IsFalse

func (v Value) IsFalse() bool

func (Value) IsFloat

func (v Value) IsFloat() bool

func (Value) IsFloat32

func (v Value) IsFloat32() bool

func (Value) IsInlineDateSpan

func (v Value) IsInlineDateSpan() bool

func (Value) IsInlineFloat64

func (v Value) IsInlineFloat64() bool

func (Value) IsInlineInt64

func (v Value) IsInlineInt64() bool

func (Value) IsInlineSymbol

func (v Value) IsInlineSymbol() bool

func (Value) IsInlineTime

func (v Value) IsInlineTime() bool

func (Value) IsInlineTimeSpan

func (v Value) IsInlineTimeSpan() bool

func (Value) IsInlineUInt64

func (v Value) IsInlineUInt64() bool

func (Value) IsInlineValue

func (v Value) IsInlineValue() bool

func (Value) IsInt16

func (v Value) IsInt16() bool

func (Value) IsInt32

func (v Value) IsInt32() bool

func (Value) IsInt8

func (v Value) IsInt8() bool

func (Value) IsNil

func (v Value) IsNil() bool

func (Value) IsNotUndefined

func (v Value) IsNotUndefined() bool

func (Value) IsReference

func (v Value) IsReference() bool

func (Value) IsSmallInt

func (v Value) IsSmallInt() bool

func (Value) IsTrue

func (v Value) IsTrue() bool

func (Value) IsUInt

func (v Value) IsUInt() bool

func (Value) IsUInt16

func (v Value) IsUInt16() bool

func (Value) IsUInt32

func (v Value) IsUInt32() bool

func (Value) IsUInt8

func (v Value) IsUInt8() bool

func (Value) IsUndefined

func (v Value) IsUndefined() bool

func (Value) IsWeak

func (v Value) IsWeak() bool

func (Value) MustBigInt

func (v Value) MustBigInt() *BigInt

func (Value) MustChar

func (v Value) MustChar() Char

func (Value) MustDate

func (v Value) MustDate() Date

func (Value) MustDateSpan

func (v Value) MustDateSpan() DateSpan

func (Value) MustFalse

func (v Value) MustFalse() FalseType

func (Value) MustFloat

func (v Value) MustFloat() Float

func (Value) MustFloat32

func (v Value) MustFloat32() Float32

func (Value) MustFloat64

func (v Value) MustFloat64() Float64

func (Value) MustInlineDateSpan

func (v Value) MustInlineDateSpan() DateSpan

func (Value) MustInlineFloat64

func (v Value) MustInlineFloat64() Float64

func (Value) MustInlineInt64

func (v Value) MustInlineInt64() Int64

func (Value) MustInlineSymbol

func (v Value) MustInlineSymbol() Symbol

func (Value) MustInlineTime

func (v Value) MustInlineTime() Time

func (Value) MustInlineTimeSpan

func (v Value) MustInlineTimeSpan() TimeSpan

func (Value) MustInlineUInt64

func (v Value) MustInlineUInt64() UInt64

func (Value) MustInt16

func (v Value) MustInt16() Int16

func (Value) MustInt32

func (v Value) MustInt32() Int32

func (Value) MustInt64

func (v Value) MustInt64() Int64

func (Value) MustInt8

func (v Value) MustInt8() Int8

func (Value) MustNil

func (v Value) MustNil() NilType

func (Value) MustReference

func (v Value) MustReference() Reference

func (Value) MustSmallInt

func (v Value) MustSmallInt() SmallInt

func (Value) MustTime

func (v Value) MustTime() Time

func (Value) MustTimeSpan

func (v Value) MustTimeSpan() TimeSpan

func (Value) MustTrue

func (v Value) MustTrue() TrueType

func (Value) MustUInt

func (v Value) MustUInt() UInt

func (Value) MustUInt16

func (v Value) MustUInt16() UInt16

func (Value) MustUInt32

func (v Value) MustUInt32() UInt32

func (Value) MustUInt64

func (v Value) MustUInt64() UInt64

func (Value) MustUInt8

func (v Value) MustUInt8() UInt8

func (Value) MustUndefined

func (v Value) MustUndefined() UndefinedType

func (Value) MustWeak

func (v Value) MustWeak() Weak

func (Value) Pointer

func (v Value) Pointer() unsafe.Pointer

func (Value) SafeAsReference

func (v Value) SafeAsReference() Reference

Returns `nil` when the value is not a reference

func (Value) SingletonClass

func (v Value) SingletonClass() *Class

func (Value) ValueFlag

func (v Value) ValueFlag() uint8

type WaitGroup

type WaitGroup struct {
	Native sync.WaitGroup
}

func (*WaitGroup) Add

func (w *WaitGroup) Add(n int)

func (*WaitGroup) Class

func (*WaitGroup) Class() *Class

func (*WaitGroup) Copy

func (w *WaitGroup) Copy() Reference

func (*WaitGroup) DirectClass

func (*WaitGroup) DirectClass() *Class

func (*WaitGroup) End

func (w *WaitGroup) End()

func (*WaitGroup) Error

func (w *WaitGroup) Error() string

func (*WaitGroup) Inspect

func (w *WaitGroup) Inspect() string

func (*WaitGroup) InstanceVariables

func (w *WaitGroup) InstanceVariables() *InstanceVariables

func (*WaitGroup) Remove

func (w *WaitGroup) Remove(n int)

func (*WaitGroup) SingletonClass

func (*WaitGroup) SingletonClass() *Class

func (*WaitGroup) Start

func (w *WaitGroup) Start()

func (*WaitGroup) Wait

func (w *WaitGroup) Wait()

type Weak

type Weak weak.Pointer[Box]

func MakeWeak

func MakeWeak(box *Box) Weak

Make a weak pointer

func (Weak) Class

func (Weak) Class() *Class

func (Weak) DirectClass

func (Weak) DirectClass() *Class

func (Weak) Error

func (w Weak) Error() string

func (Weak) Inspect

func (w Weak) Inspect() string

func (Weak) InstanceVariables

func (Weak) InstanceVariables() *InstanceVariables

func (Weak) SingletonClass

func (Weak) SingletonClass() *Class

func (Weak) ToBox

func (w Weak) ToBox() *Box

Convert to a box (a strong pointer)

func (Weak) ToBoxValue

func (w Weak) ToBoxValue() Value

func (Weak) ToImmutableBox

func (w Weak) ToImmutableBox() *ImmutableBox

Convert to an immutable box (a strong pointer)

func (Weak) ToImmutableBoxValue

func (w Weak) ToImmutableBoxValue() Value

func (Weak) ToValue

func (w Weak) ToValue() Value

Directories

Path Synopsis
Package durationscanner implements a tokenizer/lexer that analyses Elk duration strings.
Package durationscanner implements a tokenizer/lexer that analyses Elk duration strings.
Package timescanner implements a tokenizer/lexer that analyses Elk time format strings.
Package timescanner implements a tokenizer/lexer that analyses Elk time format strings.

Jump to

Keyboard shortcuts

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