LuaState class

Wrapper class for simplifying interaction with Lua states,

LuaState does not contain any state information by itself and is only a wrapper around the Fengari binding's lua_State.

Please note that this wrapper makes many ease of use to performance tradeoffs, interacting with the lua state directly through fengari_api will be significantly more performant.

Constructors

LuaState({bool openlibs = true})
Creates a new lua_State and wraps it.
LuaState.wrap(lua_State lua_state)
Wraps an existing Lua state.

Properties

hashCode int
The hash code for this object.
no setteroverride
L lua_State
Internal Lua state.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
top int
The index of the top value in the stack.
getter/setter pair

Methods

at([int index = -1]) → dynamic
Returns the stack value at index and converts it to the equivalent Dart type.
call([Iterable args = const [], int results = -1]) List
Pops a value and calls it, may throw a LuaException.
close() → void
Closes the Lua state
dup([int index = -1]) → void
Pushes the value at index.
isNil([int index = -1]) bool
Checks if the value at index is nil.
isNone([int index = -1]) bool
Checks if index is a valid stack index.
isNoneOrNil([int index = -1]) bool
Checks if the value at index is nil or if the index is invalid.
isNumber([int index = -1]) bool
Checks if the value at index is a number.
isString([int index = -1]) bool
Checks if the value at index is a string.
isTable([int index = -1]) bool
Checks if the value at index is a table.
isThread([int index = -1]) bool
Checks if the value at index is a thread.
isUserdata([int index = -1]) bool
Checks if the value at index is userdata.
isYieldable() bool
Checks if the current thread is yieldable.
len(int index) int
Returns the length of the value at index, equivalent to the # operator.
load(List<int> data) → void
Loads code from a buffer whether it be Lua or compiled bytecode and pushes the resulting lua function to the stack.
loadString(String string) → void
Same as LuaState.load but loads from a String instead.
newTable() → void
Pushes a new, empty table to the stack.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pop([int count = 1]) → void
Pops a number of values from the stack, discarding them.
popString() String
Converts the top to a string and pops it, use this instead of pop().toString().
popStrings(int n) List<String>
Same as LuaState.popString but for multiple values.
popValue() → dynamic
Pops a single value from the stack, returning it.
popValues(int count) List
Pops a number of values from the stack and returns a list of those values.
push(dynamic value) → void
Pushes a value to the stack, automatically converting Dart types to their equivalent Lua counterparts.
pushAll(Iterable values) → void
Same as LuaState.push but pushes multiple values.
pushGlobal(dynamic key) → void
Pushes the global variable from a key to the stack.
pushGlobalTable() → void
Pushes the global table (_G) to the stack.
pushThread() → void
Pushes the current thread (coroutine) to the stack.
rawLen(int index) int
Returns the raw length of the value at index.
remove(int index) → void
Removes a value in the stack at a specific index, shifting values above it down to fill the gap.
replace(int index) → void
Pops a value from the stack and moves it to index, replacing the value in its place.
requiref(String modname, dynamic fn, [bool global = true]) → void
Loads library if not loaded already and pushes it on the stack.
rotate(int index, int n) → void
Rotates stack elements between index and the top of stack n positions.
setGlobal(dynamic key) → void
Pops a value from the stack and sets the global at key to it.
tableGet([int tableIndex = -2]) → void
Pops a key and pushes the value in the table at tableIndex.
tableGetRaw([int tableIndex = -2]) → void
Same as LuaState.tableGet but does not invoke any metamethods.
tableSet([int tableIndex = -3]) → void
Pops a key and value, then adds those to the table at tableIndex.
tableSetMeta([int index = -2]) → void
Pops a table from the stack and sets it as the metatable for the value at index
tableSetRaw([int tableIndex = -3]) → void
Same as LuaState.tableSet but does not invoke any metamethods.
toString() String
A string representation of this object.
inherited
tryLoad(List<int> data) bool
Similar to LuaState.load but returns false on an error instead of throwing an exception.
tryLoadstring(String string) bool
Same as LuaState.tryLoad but loads from a String instead.
values(int count, [int? start]) List
Gets count number of values in the stack, starting at start.
xmove(LuaState to, int count) → void
Pops count values from current LuaState and pushes them all onto the stack of the target LuaState.

Operators

operator ==(Object other) bool
The equality operator.
override
operator [](int index) → dynamic
Same as LuaState.at.
operator []=(int index, dynamic value) → void
Sets the value in the stack at index to value.