UNPKG

lua-types

Version:

TypeScript definitions for Lua standard library

58 lines (51 loc) 2.43 kB
// Based on https://www.lua.org/manual/5.3/manual.html#6.2 /** @noSelfInFile */ /** * This library comprises the operations to manipulate coroutines, which come * inside the table coroutine. */ declare namespace coroutine { /** * Creates a new coroutine, with body f. f must be a function. Returns this * new coroutine, an object with type "thread". */ function create(f: (...args: any[]) => any): LuaThread; /** * Starts or continues the execution of coroutine co. The first time you * resume a coroutine, it starts running its body. The values val1, ... are * passed as the arguments to the body function. If the coroutine has yielded, * resume restarts it; the values val1, ... are passed as the results from the * yield. * * If the coroutine runs without any errors, resume returns true plus any * values passed to yield (when the coroutine yields) or any values returned * by the body function (when the coroutine terminates). If there is any * error, resume returns false plus the error message. */ function resume( co: LuaThread, ...val: any[] ): LuaMultiReturn<[true, ...any[]] | [false, string]>; /** * Returns the status of coroutine co, as a string: "running", if the * coroutine is running (that is, it called status); "suspended", if the * coroutine is suspended in a call to yield, or if it has not started running * yet; "normal" if the coroutine is active but not running (that is, it has * resumed another coroutine); and "dead" if the coroutine has finished its * body function, or if it has stopped with an error. */ function status(co: LuaThread): 'running' | 'suspended' | 'normal' | 'dead'; /** * Creates a new coroutine, with body f. f must be a function. Returns a * function that resumes the coroutine each time it is called. Any arguments * passed to the function behave as the extra arguments to resume. Returns the * same values returned by resume, except the first boolean. In case of error, * propagates the error. */ function wrap(f: (...args: any[]) => any): (...args: any[]) => LuaMultiReturn<any[]>; /** * Suspends the execution of the calling coroutine. Any arguments to yield are * passed as extra results to resume. */ function yield(...args: any[]): LuaMultiReturn<any[]>; }