<?xml version="1.0"?>
<doc>
    <assembly>
        <name>KeraLua</name>
    </assembly>
    <members>
        <member name="T:KeraLua.LuaHookMask">
            <summary>
            Lua Hook Event Masks
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookMask.Disabled">
            <summary>
            Disabled hook
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookMask.Call">
            <summary>
            The call hook: is called when the interpreter calls a function. The hook is called just after Lua enters the new function, before the function gets its arguments. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookMask.Return">
            <summary>
            The return hook: is called when the interpreter returns from a function. The hook is called just before Lua leaves the function. There is no standard way to access the values to be returned by the function. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookMask.Line">
            <summary>
            The line hook: is called when the interpreter is about to start the execution of a new line of code, or when it jumps back in the code (even to the same line). (This event only happens while Lua is executing a Lua function.) 
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookMask.Count">
            <summary>
             The count hook: is called after the interpreter executes every count instructions. (This event only happens while Lua is executing a Lua function.) 
            </summary>
        </member>
        <member name="T:KeraLua.LuaFunction">
            <summary>
            Type for C# callbacks
            In order to communicate properly with Lua, a C function must use the following protocol, which defines the way parameters and results are passed: a C function receives its arguments from Lua in its stack in direct order (the first argument is pushed first). So, when the function starts, lua_gettop(L) returns the number of arguments received by the function. The first argument (if any) is at index 1 and its last argument is at index lua_gettop(L). To return values to Lua, a C function just pushes them onto the stack, in direct order (the first result is pushed first), and returns the number of results. Any other value in the stack below the results will be properly discarded by Lua. Like a Lua function, a C function called by Lua can also return many results. 
            </summary>
            <param name="luaState"></param>
            <returns></returns>
        </member>
        <member name="T:KeraLua.LuaHookFunction">
            <summary>
            Type for debugging hook functions callbacks. 
            </summary>
            <param name="luaState"></param>
            <param name="ar"></param>
        </member>
        <member name="T:KeraLua.LuaKFunction">
            <summary>
            Type for continuation functions 
            </summary>
            <param name="L"></param>
            <param name="status"></param>
            <param name="ctx"></param>
            <returns></returns>
        </member>
        <member name="T:KeraLua.LuaReader">
            <summary>
            The reader function used by lua_load. Every time it needs another piece of the chunk, lua_load calls the reader, passing along its data parameter. The reader must return a pointer to a block of memory with a new piece of the chunk and set size to the block size
            </summary>
            <param name="L"></param>
            <param name="ud"></param>
            <param name="sz"></param>
            <returns></returns>
        </member>
        <member name="T:KeraLua.LuaWriter">
            <summary>
            
            </summary>
            <param name="L"></param>
            <param name="p"></param>
            <param name="size"></param>
            <param name="ud"></param>
            <returns></returns>
        </member>
        <member name="T:KeraLua.LuaAlloc">
            <summary>
            The type of the memory-allocation function used by Lua states. The allocator function must provide a functionality similar to realloc
            </summary>
            <param name="ud"></param>
            <param name="ptr"></param>
            <param name="osize"></param>
            <param name="nsize"></param>
            <returns></returns>
        </member>
        <member name="T:KeraLua.Lua">
            <summary>
            Lua state class, main interface to use Lua library.
            </summary>
        </member>
        <member name="P:KeraLua.Lua.Handle">
            <summary>
            Internal Lua handle pointer.
            </summary>
        </member>
        <member name="P:KeraLua.Lua.Encoding">
            <summary>
            Encoding for the string conversions
            ASCII by default.
            </summary>
        </member>
        <member name="P:KeraLua.Lua.ExtraSpace">
            <summary>
             Returns a pointer to a raw memory area associated with the given Lua state. The application can use this area for any purpose; Lua does not use it for anything.
             Each new thread has this area initialized with a copy of the area of the main thread. 
            </summary>
            <returns></returns>
        </member>
        <member name="P:KeraLua.Lua.MainThread">
            <summary>
            Get the main thread object, if the object is the main thread will be equal this
            </summary>
        </member>
        <member name="M:KeraLua.Lua.#ctor(System.Boolean)">
            <summary>
            Initialize Lua state, and open the default libs
            </summary>
            <param name="openLibs">flag to enable/disable opening the default libs</param>
        </member>
        <member name="M:KeraLua.Lua.#ctor(KeraLua.LuaAlloc,System.IntPtr)">
            <summary>
            Initialize Lua state with allocator function and user data value
            This method will NOT open the default libs.
            Creates a new thread running in a new, independent state. Returns NULL if it cannot create the thread or the state (due to lack of memory). The argument f is the allocator function; Lua does all memory allocation for this state through this function (see lua_Alloc). The second argument, ud, is an opaque pointer that Lua passes to the allocator in every call. 
            </summary>
            <param name="allocator">LuaAlloc allocator function called to alloc/free memory</param>
            <param name="ud">opaque pointer passed to allocator</param>
        </member>
        <member name="M:KeraLua.Lua.FromIntPtr(System.IntPtr)">
            <summary>
            Get the Lua object from IntPtr
            Useful for LuaFunction callbacks, if the Lua object was already collected will return null.
            </summary>
            <param name="luaState"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Finalize">
            <summary>
            Finalizer, will dispose the lua state if wasn't closed
            </summary>
        </member>
        <member name="M:KeraLua.Lua.Dispose(System.Boolean)">
            <summary>
            Dispose lua state
            </summary>
            <param name="disposing"></param>
        </member>
        <member name="M:KeraLua.Lua.Close">
            <summary>
            Destroys all objects in the given Lua state (calling the corresponding garbage-collection metamethods, if any) and frees all dynamic memory used by this state
            </summary>
        </member>
        <member name="M:KeraLua.Lua.Dispose">
            <summary>
            Dispose the lua context (calling Close)
            </summary>
        </member>
        <member name="M:KeraLua.Lua.AbsIndex(System.Int32)">
            <summary>
            Converts the acceptable index idx into an equivalent absolute index (that is, one that does not depend on the stack top). 
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Arith(KeraLua.LuaOperation)">
            <summary>
            Performs an arithmetic or bitwise operation over the two values (or one, in the case of negations) at the top of the stack, with the value at the top being the second operand, pops these values, and pushes the result of the operation. The function follows the semantics of the corresponding Lua operator (that is, it may call metamethods). 
            </summary>
            <param name="operation"></param>
        </member>
        <member name="M:KeraLua.Lua.AtPanic(KeraLua.LuaFunction)">
            <summary>
            Sets a new panic function and returns the old one
            </summary>
            <param name="panicFunction"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Call(System.Int32,System.Int32)">
            <summary>
             Calls a function. 
             To call a function you must use the following protocol: first, the function to be called is pushed onto the stack; then, the arguments to the function are pushed in direct order;
             that is, the first argument is pushed first. Finally you call lua_call; nargs is the number of arguments that you pushed onto the stack.
             All arguments and the function value are popped from the stack when the function is called. The function results are pushed onto the stack when the function returns.
             The number of results is adjusted to nresults, unless nresults is LUA_MULTRET. In this case, all results from the function are pushed;
             Lua takes care that the returned values fit into the stack space, but it does not ensure any extra space in the stack. The function results are pushed onto the stack in direct order (the first result is pushed first), so that after the call the last result is on the top of the stack. 
            </summary>
            <param name="arguments"></param>
            <param name="results"></param>
        </member>
        <member name="M:KeraLua.Lua.CallK(System.Int32,System.Int32,System.Int32,KeraLua.LuaKFunction)">
            <summary>
            This function behaves exactly like lua_call, but allows the called function to yield 
            </summary>
            <param name="arguments"></param>
            <param name="results"></param>
            <param name="context"></param>
            <param name="continuation"></param>
        </member>
        <member name="M:KeraLua.Lua.CheckStack(System.Int32)">
            <summary>
            Ensures that the stack has space for at least n extra slots (that is, that you can safely push up to n values into it). It returns false if it cannot fulfill the request,
            </summary>
            <param name="nExtraSlots"></param>
        </member>
        <member name="M:KeraLua.Lua.Compare(System.Int32,System.Int32,KeraLua.LuaCompare)">
            <summary>
            Compares two Lua values. Returns 1 if the value at index index1 satisfies op when compared with the value at index index2
            </summary>
            <param name="index1"></param>
            <param name="index2"></param>
            <param name="comparison"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Concat(System.Int32)">
            <summary>
            Concatenates the n values at the top of the stack, pops them, and leaves the result at the top. If n is 1, the result is the single value on the stack (that is, the function does nothing);
            </summary>
            <param name="n"></param>
        </member>
        <member name="M:KeraLua.Lua.Copy(System.Int32,System.Int32)">
            <summary>
            Copies the element at index fromidx into the valid index toidx, replacing the value at that position
            </summary>
            <param name="fromIndex"></param>
            <param name="toIndex"></param>
        </member>
        <member name="M:KeraLua.Lua.CreateTable(System.Int32,System.Int32)">
            <summary>
            Creates a new empty table and pushes it onto the stack. Parameter narr is a hint for how many elements the table will have as a sequence; parameter nrec is a hint for how many other elements the table will have
            </summary>
            <param name="elements"></param>
            <param name="records"></param>
        </member>
        <member name="M:KeraLua.Lua.Dump(KeraLua.LuaWriter,System.IntPtr,System.Boolean)">
            <summary>
            Dumps a function as a binary chunk. Receives a Lua function on the top of the stack and produces a binary chunk that, if loaded again, results in a function equivalent to the one dumped
            </summary>
            <param name="writer"></param>
            <param name="data"></param>
            <param name="stripDebug"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Error">
            <summary>
            Generates a Lua error, using the value at the top of the stack as the error object. This function does a long jump
            (We want it to be inlined to avoid issues with managed stack)
            </summary>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GarbageCollector(KeraLua.LuaGC,System.Int32)">
            <summary>
            Controls the garbage collector. 
            </summary>
            <param name="what"></param>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetAllocFunction(System.IntPtr@)">
            <summary>
            Returns the memory-allocation function of a given state. If ud is not NULL, Lua stores in *ud the opaque pointer given when the memory-allocator function was set. 
            </summary>
            <param name="ud"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetField(System.Int32,System.String)">
            <summary>
             Pushes onto the stack the value t[k], where t is the value at the given index. As in Lua, this function may trigger a metamethod for the "index" event (see §2.4).
            Returns the type of the pushed value. 
            </summary>
            <param name="index"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetField(KeraLua.LuaRegistry,System.String)">
            <summary>
             Pushes onto the stack the value t[k], where t is the value at the given index. As in Lua, this function may trigger a metamethod for the "index" event (see §2.4).
            Returns the type of the pushed value. 
            </summary>
            <param name="index"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetGlobal(System.String)">
            <summary>
            Pushes onto the stack the value of the global name. Returns the type of that value
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetInteger(System.Int32,System.Int64)">
            <summary>
            Pushes onto the stack the value t[i], where t is the value at the given index
            </summary>
            <param name="index"></param>
            <param name="i"></param>
            <returns> Returns the type of the pushed value</returns>
        </member>
        <member name="M:KeraLua.Lua.GetInfo(System.String,System.IntPtr)">
            <summary>
            Gets information about a specific function or function invocation. 
            </summary>
            <param name="what"></param>
            <param name="ar"></param>
            <returns>This function returns false on error (for instance, an invalid option in what). </returns>
        </member>
        <member name="M:KeraLua.Lua.GetInfo(System.String,KeraLua.LuaDebug@)">
            <summary>
            Gets information about a specific function or function invocation. 
            </summary>
            <param name="what"></param>
            <param name="ar"></param>
            <returns>This function returns false on error (for instance, an invalid option in what). </returns>
        </member>
        <member name="M:KeraLua.Lua.GetLocal(System.IntPtr,System.Int32)">
            <summary>
            Gets information about a local variable of a given activation record or a given function. 
            </summary>
            <param name="ar"></param>
            <param name="n"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetLocal(KeraLua.LuaDebug,System.Int32)">
            <summary>
            Gets information about a local variable of a given activation record or a given function. 
            </summary>
            <param name="ar"></param>
            <param name="n"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetMetaTable(System.Int32)">
            <summary>
            If the value at the given index has a metatable, the function pushes that metatable onto the stack and returns 1
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetStack(System.Int32,System.IntPtr)">
            <summary>
            Gets information about the interpreter runtime stack. 
            </summary>
            <param name="level"></param>
            <param name="ar"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetStack(System.Int32,KeraLua.LuaDebug@)">
            <summary>
            Gets information about the interpreter runtime stack. 
            </summary>
            <param name="level"></param>
            <param name="ar"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetTable(System.Int32)">
            <summary>
            Pushes onto the stack the value t[k], where t is the value at the given index and k is the value at the top of the stack. 
            </summary>
            <param name="index"></param>
            <returns>Returns the type of the pushed value</returns>
        </member>
        <member name="M:KeraLua.Lua.GetTable(KeraLua.LuaRegistry)">
            <summary>
            Pushes onto the stack the value t[k], where t is the value at the given index and k is the value at the top of the stack. 
            </summary>
            <param name="index"></param>
            <returns>Returns the type of the pushed value</returns>
        </member>
        <member name="M:KeraLua.Lua.GetTop">
            <summary>
            Returns the index of the top element in the stack. 0 means an empty stack.
            </summary>
            <returns>Returns the index of the top element in the stack.</returns>
        </member>
        <member name="M:KeraLua.Lua.GetUserValue(System.Int32)">
            <summary>
            Pushes onto the stack the Lua value associated with the full userdata at the given index. 
            </summary>
            <param name="index"></param>
            <returns>Returns the type of the pushed value. </returns>
        </member>
        <member name="M:KeraLua.Lua.GetUpValue(System.Int32,System.Int32)">
            <summary>
             Gets information about the n-th upvalue of the closure at index funcindex. It pushes the upvalue's value onto the stack and returns its name. Returns NULL (and pushes nothing) when the index n is greater than the number of upvalues.
             For C functions, this function uses the empty string "" as a name for all upvalues. (For Lua functions, upvalues are the external local variables that the function uses, and that are consequently included in its closure.)
             Upvalues have no particular order, as they are active through the whole function. They are numbered in an arbitrary order. 
            </summary>
            <param name="functionIndex"></param>
            <param name="n"></param>
            <returns>Returns the type of the pushed value. </returns>
        </member>
        <member name="P:KeraLua.Lua.Hook">
            <summary>
            Returns the current hook function. 
            </summary>
        </member>
        <member name="P:KeraLua.Lua.HookCount">
            <summary>
            Returns the current hook count. 
            </summary>
        </member>
        <member name="P:KeraLua.Lua.HookMask">
            <summary>
            Returns the current hook mask. 
            </summary>
        </member>
        <member name="M:KeraLua.Lua.Insert(System.Int32)">
            <summary>
            Moves the top element into the given valid index, shifting up the elements above this index to open space. This function cannot be called with a pseudo-index, because a pseudo-index is not an actual stack position. 
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:KeraLua.Lua.IsBoolean(System.Int32)">
            <summary>
            Returns  if the value at the given index is a boolean
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsCFunction(System.Int32)">
            <summary>
            Returns  if the value at the given index is a C(#) function
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsFunction(System.Int32)">
            <summary>
            Returns  if the value at the given index is a function
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsInteger(System.Int32)">
            <summary>
            Returns  if the value at the given index is an integer
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsLightUserData(System.Int32)">
            <summary>
            Returns  if the value at the given index is light user data
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsNil(System.Int32)">
            <summary>
            Returns  if the value at the given index is nil
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsNone(System.Int32)">
            <summary>
            Returns  if the value at the given index is none
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsNoneOrNil(System.Int32)">
            <summary>
            Check if the value at the index is none or nil
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsNumber(System.Int32)">
            <summary>
            Returns  if the value at the given index is a number
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsStringOrNumber(System.Int32)">
            <summary>
            Returns  if the value at the given index is a string or a number (which is always convertible to a string)
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsString(System.Int32)">
            <summary>
            Returns  if the value at the given index is a string
            NOTE: This is different from the lua_isstring, which return true if the value is a number
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsTable(System.Int32)">
            <summary>
            Returns  if the value at the given index is a table. 
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsThread(System.Int32)">
            <summary>
            Returns  if the value at the given index is a thread. 
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.IsUserData(System.Int32)">
            <summary>
            Returns  if the value at the given index is a user data. 
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="P:KeraLua.Lua.IsYieldable">
            <summary>
            Returns  if the given coroutine can yield, and 0 otherwise
            </summary>
        </member>
        <member name="M:KeraLua.Lua.PushLength(System.Int32)">
            <summary>
            Push the length of the value at the given index on the stack. It is equivalent to the '#' operator in Lua (see §3.4.7) and may trigger a metamethod for the "length" event (see §2.4). The result is pushed on the stack. 
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:KeraLua.Lua.Load(KeraLua.LuaReader,System.IntPtr,System.String,System.String)">
            <summary>
            Loads a Lua chunk without running it. If there are no errors, lua_load pushes the compiled chunk as a Lua function on top of the stack. Otherwise, it pushes an error message. 
            The lua_load function uses a user-supplied reader function to read the chunk (see lua_Reader). The data argument is an opaque value passed to the reader function. 
            </summary>
            <param name="reader"></param>
            <param name="data"></param>
            <param name="chunkName"></param>
            <param name="mode"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.NewTable">
            <summary>
            Creates a new empty table and pushes it onto the stack
            </summary>
        </member>
        <member name="M:KeraLua.Lua.NewThread">
            <summary>
            Creates a new thread, pushes it on the stack, and returns a pointer to a lua_State that represents this new thread. The new thread returned by this function shares with the original thread its global environment, but has an independent execution stack. 
            </summary>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.NewUserData(System.Int32)">
            <summary>
            This function allocates a new block of memory with the given size, pushes onto the stack a new full userdata with the block address, and returns this address. The host program can freely use this memory
            </summary>
            <param name="size"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Next(System.Int32)">
            <summary>
            Pops a key from the stack, and pushes a key–value pair from the table at the given index (the "next" pair after the given key).
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.PCall(System.Int32,System.Int32,System.Int32)">
            <summary>
            Calls a function in protected mode. 
            </summary>
            <param name="arguments"></param>
            <param name="results"></param>
            <param name="errorFunctionIndex"></param>
        </member>
        <member name="M:KeraLua.Lua.PCallK(System.Int32,System.Int32,System.Int32,System.Int32,KeraLua.LuaKFunction)">
            <summary>
            This function behaves exactly like lua_pcall, but allows the called function to yield
            </summary>
            <param name="arguments"></param>
            <param name="results"></param>
            <param name="errorFunctionIndex"></param>
            <param name="context"></param>
            <param name="k"></param>
        </member>
        <member name="M:KeraLua.Lua.Pop(System.Int32)">
            <summary>
            Pops n elements from the stack. 
            </summary>
            <param name="n"></param>
        </member>
        <member name="M:KeraLua.Lua.PushBoolean(System.Boolean)">
            <summary>
            Pushes a boolean value with value b onto the stack. 
            </summary>
            <param name="b"></param>
        </member>
        <member name="M:KeraLua.Lua.PushCClosure(KeraLua.LuaFunction,System.Int32)">
            <summary>
             Pushes a new C closure onto the stack. When a C function is created, it is possible to associate 
             some values with it, thus creating a C closure (see §4.4); these values are then accessible to the function 
             whenever it is called. To associate values with a C function, first these values must be pushed onto the 
             stack (when there are multiple values, the first value is pushed first). 
             Then lua_pushcclosure is called to create and push the C function onto the stack, 
             with the argument n telling how many values will be associated with the function. 
             lua_pushcclosure also pops these values from the stack. 
            </summary>
            <param name="function"></param>
            <param name="n"></param>
        </member>
        <member name="M:KeraLua.Lua.PushCFunction(KeraLua.LuaFunction)">
            <summary>
            Pushes a C function onto the stack. This function receives a pointer to a C function and pushes onto the stack a Lua value of type function that, when called, invokes the corresponding C function. 
            </summary>
            <param name="function"></param>
        </member>
        <member name="M:KeraLua.Lua.PushGlobalTable">
            <summary>
            Pushes the global environment onto the stack. 
            </summary>
        </member>
        <member name="M:KeraLua.Lua.PushInteger(System.Int64)">
            <summary>
            Pushes an integer with value n onto the stack. 
            </summary>
            <param name="n"></param>
        </member>
        <member name="M:KeraLua.Lua.PushLightUserData(System.IntPtr)">
            <summary>
            Pushes a light userdata onto the stack.
            Userdata represent C values in Lua. A light userdata represents a pointer, a void*. It is a value (like a number): you do not create it, it has no individual metatable, and it is not collected (as it was never created). A light userdata is equal to "any" light userdata with the same C address. 
            </summary>
            <param name="data"></param>
        </member>
        <member name="M:KeraLua.Lua.PushObject``1(``0)">
            <summary>
            Pushes a reference data (C# object)  onto the stack. 
            This function uses lua_pushlightuserdata, but uses a GCHandle to store the reference inside the Lua side.
            The CGHandle is create as Normal, and will be freed when the value is pop
            </summary>
            <typeparam name="T"></typeparam>
            <param name="obj"></param>
        </member>
        <member name="M:KeraLua.Lua.PushBuffer(System.Byte[])">
            <summary>
            Pushes binary buffer onto the stack (usually UTF encoded string) or any arbitraty binary data
            </summary>
            <param name="buffer"></param>
        </member>
        <member name="M:KeraLua.Lua.PushString(System.String)">
            <summary>
            Pushes a string onto the stack
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:KeraLua.Lua.PushString(System.String,System.Object[])">
            <summary>
            Push a instring using string.Format 
            PushString("Foo {0}", 10);
            </summary>
            <param name="value"></param>
            <param name="args"></param>
        </member>
        <member name="M:KeraLua.Lua.PushNil">
            <summary>
            Pushes a nil value onto the stack. 
            </summary>
        </member>
        <member name="M:KeraLua.Lua.PushNumber(System.Double)">
            <summary>
            Pushes a double with value n onto the stack. 
            </summary>
            <param name="number"></param>
        </member>
        <member name="M:KeraLua.Lua.PushThread(KeraLua.Lua)">
            <summary>
            Pushes the thread represented by L onto the stack. Returns true if this thread is the main thread of its state. 
            </summary>
            <param name="thread"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.PushCopy(System.Int32)">
            <summary>
            Pushes a copy of the element at the given index onto the stack. (lua_pushvalue)
            The method was renamed, since pushvalue is a bit vague
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.RawEqual(System.Int32,System.Int32)">
            <summary>
            Returns true if the two values in indices index1 and index2 are primitively equal (that is, without calling the __eq metamethod). Otherwise returns false. Also returns false if any of the indices are not valid. 
            </summary>
            <param name="index1"></param>
            <param name="index2"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.RawGet(System.Int32)">
            <summary>
            Similar to GetTable, but does a raw access (i.e., without metamethods). 
            </summary>
            <param name="index"></param>
            <returns>Returns the type of the pushed value</returns>
        </member>
        <member name="M:KeraLua.Lua.RawGet(KeraLua.LuaRegistry)">
            <summary>
            Similar to GetTable, but does a raw access (i.e., without metamethods). 
            </summary>
            <param name="index"></param>
            <returns>Returns the type of the pushed value</returns>
        </member>
        <member name="M:KeraLua.Lua.RawGetInteger(System.Int32,System.Int64)">
            <summary>
            Pushes onto the stack the value t[n], where t is the table at the given index. The access is raw, that is, it does not invoke the __index metamethod. 
            </summary>
            <param name="index"></param>
            <param name="n"></param>
            <returns>Returns the type of the pushed value</returns>
        </member>
        <member name="M:KeraLua.Lua.RawGetInteger(KeraLua.LuaRegistry,System.Int64)">
            <summary>
            Pushes onto the stack the value t[n], where t is the table at the given index. The access is raw, that is, it does not invoke the __index metamethod. 
            </summary>
            <param name="index"></param>
            <param name="n"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.RawGetByHashCode(System.Int32,System.Object)">
            <summary>
            Pushes onto the stack the value t[k], where t is the table at the given index and k is the pointer p represented as a light userdata. The access is raw; that is, it does not invoke the __index metamethod. 
            </summary>
            <param name="index"></param>
            <param name="obj"></param>
            <returns>Returns the type of the pushed value. </returns>
        </member>
        <member name="M:KeraLua.Lua.RawLen(System.Int32)">
            <summary>
            Returns the raw "length" of the value at the given index: for strings, this is the string length; for tables, this is the result of the length operator ('#') with no metamethods; for userdata, this is the size of the block of memory allocated for the userdata; for other values, it is 0. 
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.RawSet(System.Int32)">
            <summary>
            Similar to lua_settable, but does a raw assignment (i.e., without metamethods).
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:KeraLua.Lua.RawSet(KeraLua.LuaRegistry)">
            <summary>
            Similar to lua_settable, but does a raw assignment (i.e., without metamethods).
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:KeraLua.Lua.RawSetInteger(System.Int32,System.Int64)">
            <summary>
             Does the equivalent of t[i] = v, where t is the table at the given index and v is the value at the top of the stack.
             This function pops the value from the stack. The assignment is raw, that is, it does not invoke the __newindex metamethod. 
            </summary>
            <param name="index">index of table</param>
            <param name="i">value</param>
        </member>
        <member name="M:KeraLua.Lua.RawSetInteger(KeraLua.LuaRegistry,System.Int64)">
            <summary>
             Does the equivalent of t[i] = v, where t is the table at the given index and v is the value at the top of the stack.
             This function pops the value from the stack. The assignment is raw, that is, it does not invoke the __newindex metamethod. 
            </summary>
            <param name="index"></param>
            <param name="i"></param>
        </member>
        <member name="M:KeraLua.Lua.RawSetByHashCode(System.Int32,System.Object)">
            <summary>
            Does the equivalent of t[p] = v, where t is the table at the given index, p is encoded as a light userdata, and v is the value at the top of the stack. 
            </summary>
            <param name="index"></param>
            <param name="obj"></param>
        </member>
        <member name="M:KeraLua.Lua.Register(System.String,KeraLua.LuaFunction)">
            <summary>
            Sets the C# delegate f as the new value of global name
            </summary>
            <param name="name"></param>
            <param name="function"></param>
        </member>
        <member name="M:KeraLua.Lua.Remove(System.Int32)">
            <summary>
            Removes the element at the given valid index, shifting down the elements above this index to fill the gap. This function cannot be called with a pseudo-index, because a pseudo-index is not an actual stack position. 
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:KeraLua.Lua.Replace(System.Int32)">
            <summary>
            Moves the top element into the given valid index without shifting any element (therefore replacing the value at that given index), and then pops the top element.
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:KeraLua.Lua.Resume(KeraLua.Lua,System.Int32)">
            <summary>
             To start a coroutine, you push onto the thread stack the main function plus any arguments; then you call lua_resume,
             with nargs being the number of arguments. This call returns when the coroutine suspends or finishes its execution. 
             When it returns, the stack contains all values passed to lua_yield, or all values returned by the body function. 
             lua_resume returns LUA_YIELD if the coroutine yields, LUA_OK if the coroutine finishes its execution without errors, 
             or an error code in case of errors (see lua_pcall).
             In case of errors, the stack is not unwound, so you can use the debug API over it. 
             The error object is on the top of the stack.
             To resume a coroutine, you remove any results from the last lua_yield, put on its stack only the values to be passed as results from yield,
             and then call lua_resume.
             The parameter from represents the coroutine that is resuming L. 
             If there is no such coroutine, this parameter can be NULL. 
            </summary>
            <param name="from"></param>
            <param name="arguments"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Rotate(System.Int32,System.Int32)">
            <summary>
             Rotates the stack elements between the valid index idx and the top of the stack. The elements are rotated n positions in the direction of the top, for a positive n, or -n positions in the direction of the bottom, for a negative n. The absolute value of n must not be greater than the size of the slice being rotated. This function cannot be called with a pseudo-index, because a pseudo-index is not an actual stack position. 
            </summary>
            <param name="index"></param>
            <param name="n"></param>
        </member>
        <member name="M:KeraLua.Lua.SetAllocFunction(KeraLua.LuaAlloc,System.IntPtr@)">
            <summary>
            Changes the allocator function of a given state to f with user data ud. 
            </summary>
            <param name="alloc"></param>
            <param name="ud"></param>
        </member>
        <member name="M:KeraLua.Lua.SetField(System.Int32,System.String)">
            <summary>
            Does the equivalent to t[k] = v, where t is the value at the given index and v is the value at the top of the stack.
            </summary>
            <param name="index"></param>
            <param name="key"></param>
        </member>
        <member name="M:KeraLua.Lua.SetHook(KeraLua.LuaHookFunction,KeraLua.LuaHookMask,System.Int32)">
            <summary>
            Sets the debugging hook function. 
            
            Argument f is the hook function. mask specifies on which events the hook will be called: it is formed by a bitwise OR of the constants
            </summary>
            <param name="hookFunction">Hook function callback</param>
            <param name="mask">hook mask</param>
            <param name="count">count (used only with LuaHookMas.Count)</param>
        </member>
        <member name="M:KeraLua.Lua.SetGlobal(System.String)">
            <summary>
            Pops a value from the stack and sets it as the new value of global name. 
            </summary>
            <param name="name"></param>
        </member>
        <member name="M:KeraLua.Lua.SetInteger(System.Int32,System.Int64)">
            <summary>
            Does the equivalent to t[n] = v, where t is the value at the given index and v is the value at the top of the stack. 
            </summary>
            <param name="index"></param>
            <param name="n"></param>
        </member>
        <member name="M:KeraLua.Lua.SetLocal(System.IntPtr,System.Int32)">
            <summary>
            Sets the value of a local variable of a given activation record. It assigns the value at the top of the stack to the variable and returns its name. It also pops the value from the stack. 
            </summary>
            <param name="ar"></param>
            <param name="n"></param>
            <returns>Returns NULL (and pops nothing) when the index is greater than the number of active local variables. </returns>
        </member>
        <member name="M:KeraLua.Lua.SetLocal(KeraLua.LuaDebug,System.Int32)">
            <summary>
            Sets the value of a local variable of a given activation record. It assigns the value at the top of the stack to the variable and returns its name. It also pops the value from the stack. 
            </summary>
            <param name="ar"></param>
            <param name="n"></param>
            <returns>Returns NULL (and pops nothing) when the index is greater than the number of active local variables. </returns>
        </member>
        <member name="M:KeraLua.Lua.SetMetaTable(System.Int32)">
            <summary>
            Pops a table from the stack and sets it as the new metatable for the value at the given index. 
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:KeraLua.Lua.SetTable(System.Int32)">
            <summary>
             Does the equivalent to t[k] = v, where t is the value at the given index, v is the value at the top of the stack, and k is the value just below the top
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:KeraLua.Lua.SetTop(System.Int32)">
            <summary>
            Accepts any index, or 0, and sets the stack top to this index. If the new top is larger than the old one, then the new elements are filled with nil. If index is 0, then all stack elements are removed. 
            </summary>
            <param name="newTop"></param>
        </member>
        <member name="M:KeraLua.Lua.SetUpValue(System.Int32,System.Int32)">
            <summary>
            Sets the value of a closure's upvalue. It assigns the value at the top of the stack to the upvalue and returns its name. It also pops the value from the stack. 
            </summary>
            <param name="functionIndex"></param>
            <param name="n"></param>
            <returns>Returns NULL (and pops nothing) when the index n is greater than the number of upvalues. </returns>
        </member>
        <member name="M:KeraLua.Lua.SetUserValue(System.Int32)">
            <summary>
             Pops a value from the stack and sets it as the new value associated to the full userdata at the given index.
            </summary>
            <param name="index"></param>
        </member>
        <member name="P:KeraLua.Lua.Status">
            <summary>
             The status can be 0 (LUA_OK) for a normal thread, an error code if the thread finished the execution of a lua_resume with an error, or LUA_YIELD if the thread is suspended. 
             You can only call functions in threads with status LUA_OK. You can resume threads with status LUA_OK (to start a new coroutine) or LUA_YIELD (to resume a coroutine). 
            </summary>
        </member>
        <member name="M:KeraLua.Lua.StringToNumber(System.String)">
            <summary>
            Converts the zero-terminated string s to a number, pushes that number into the stack,
            </summary>
            <param name="s"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToBoolean(System.Int32)">
            <summary>
            Converts the Lua value at the given index to a C# boolean value
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToCFunction(System.Int32)">
            <summary>
            Converts a value at the given index to a C# function. That value must be a C# function; otherwise, returns NULL
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToInteger(System.Int32)">
            <summary>
            Converts the Lua value at the given index to the signed integral type lua_Integer. The Lua value must be an integer, or a number or string convertible to an integer (see §3.4.3); otherwise, lua_tointegerx returns 0. 
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToIntegerX(System.Int32)">
            <summary>
            Converts the Lua value at the given index to the signed integral type lua_Integer. The Lua value must be an integer, or a number or string convertible to an integer (see §3.4.3); otherwise, lua_tointegerx returns 0. 
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToBuffer(System.Int32)">
            <summary>
            Converts the Lua value at the given as byte array
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToBuffer(System.Int32,System.Boolean)">
            <summary>
            Converts the Lua value at the given index to a byte array.
            </summary>
            <param name="index"></param>
            <param name="callMetamethod">Calls __tostring field if present</param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToString(System.Int32)">
            <summary>
            Converts the Lua value at the given index to a C# string
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToString(System.Int32,System.Boolean)">
            <summary>
            Converts the Lua value at the given index to a C# string
            </summary>
            <param name="index"></param>
            <param name="callMetamethod">Calls __tostring field if present</param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToNumber(System.Int32)">
            <summary>
            Converts the Lua value at the given index to a C# double
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToNumberX(System.Int32)">
            <summary>
            Converts the Lua value at the given index to a C# double?
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToPointer(System.Int32)">
            <summary>
             Converts the value at the given index to a generic C pointer (void*). The value can be a userdata, a table, a thread, or a function; otherwise, lua_topointer returns NULL. Different objects will give different pointers. There is no way to convert the pointer back to its original value.
             Typically this function is used only for hashing and debug information. 
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToThread(System.Int32)">
            <summary>
            Converts the value at the given index to a Lua thread
            or return the self if is the main thread
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToObject``1(System.Int32,System.Boolean)">
            <summary>
            Return an object (refence) at the index
            Important if a object was push the object need to fetched using
            this method, otherwise the C# object will never be collected
            </summary>
            <typeparam name="T"></typeparam>
            <param name="index"></param>
            <param name="freeGCHandle">True to free the GCHandle</param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ToUserData(System.Int32)">
            <summary>
            If the value at the given index is a full userdata, returns its block address. If the value is a light userdata, returns its pointer. Otherwise, returns NULL
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Type(System.Int32)">
            <summary>
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.TypeName(KeraLua.LuaType)">
            <summary>
            Returns the name of the type of the value at the given index. 
            </summary>
            <param name="type"></param>
            <returns>Name of the type of the value at the given index</returns>
        </member>
        <member name="M:KeraLua.Lua.UpValueId(System.Int32,System.Int32)">
            <summary>
             Returns a unique identifier for the upvalue numbered n from the closure at index funcindex.
            </summary>
            <param name="functionIndex"></param>
            <param name="n"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.UpValueIndex(System.Int32)">
            <summary>
            Returns the pseudo-index that represents the i-th upvalue of the running function 
            </summary>
            <param name="i"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.UpValueJoin(System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Make the n1-th upvalue of the Lua closure at index funcindex1 refer to the n2-th upvalue of the Lua closure at index funcindex2
            </summary>
            <param name="functionIndex1"></param>
            <param name="n1"></param>
            <param name="functionIndex2"></param>
            <param name="n2"></param>
        </member>
        <member name="M:KeraLua.Lua.Version">
            <summary>
            Return the version of Lua (e.g 503)
            </summary>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.XMove(KeraLua.Lua,System.Int32)">
            <summary>
             Exchange values between different threads of the same state.
             This function pops n values from the current stack, and pushes them onto the stack to. 
            </summary>
            <param name="to"></param>
            <param name="n"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Yield(System.Int32)">
            <summary>
            This function is equivalent to lua_yieldk, but it has no continuation (see §4.7). Therefore, when the thread resumes, it continues the function that called the function calling lua_yield. 
            </summary>
            <param name="results"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.YieldK(System.Int32,System.Int32,KeraLua.LuaKFunction)">
            <summary>
             Yields a coroutine (thread). When a C function calls lua_yieldk, the running coroutine suspends its execution, and the call to lua_resume that started this coroutine returns
            </summary>
            <param name="results">Number of values from the stack that will be passed as results to lua_resume.</param>
            <param name="context"></param>
            <param name="continuation"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ArgumentCheck(System.Boolean,System.Int32,System.String)">
            <summary>
            Checks whether cond is true. If it is not, raises an error with a standard message
            </summary>
            <param name="condition"></param>
            <param name="argument"></param>
            <param name="message"></param>
        </member>
        <member name="M:KeraLua.Lua.ArgumentError(System.Int32,System.String)">
            <summary>
            Raises an error reporting a problem with argument arg of the C function that called it, using a standard message that includes extramsg as a comment: 
            </summary>
            <param name="argument"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.CallMetaMethod(System.Int32,System.String)">
            <summary>
            If the object at index obj has a metatable and this metatable has a field e, this function calls this field passing the object as its only argument.
            </summary>
            <param name="obj"></param>
            <param name="field"></param>
            <returns>If there is no metatable or no metamethod, this function returns false (without pushing any value on the stack)</returns>
        </member>
        <member name="M:KeraLua.Lua.CheckAny(System.Int32)">
            <summary>
            Checks whether the function has an argument of any type (including nil) at position arg. 
            </summary>
            <param name="argument"></param>
        </member>
        <member name="M:KeraLua.Lua.CheckInteger(System.Int32)">
            <summary>
            Checks whether the function argument arg is an integer (or can be converted to an integer)
            </summary>
            <param name="argument"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.CheckBuffer(System.Int32)">
            <summary>
            Checks whether the function argument arg is a string and returns this string;
            </summary>
            <param name="argument"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.CheckString(System.Int32)">
            <summary>
            Checks whether the function argument arg is a string and returns this string;
            </summary>
            <param name="argument"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.CheckNumber(System.Int32)">
            <summary>
            Checks whether the function argument arg is a number and returns this number. 
            </summary>
            <param name="argument"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.CheckOption(System.Int32,System.String,System.String[])">
            <summary>
            Checks whether the function argument arg is a string and searches for this string in the array lst 
            </summary>
            <param name="argument"></param>
            <param name="def"></param>
            <param name="list"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.CheckStack(System.Int32,System.String)">
            <summary>
            Grows the stack size to top + sz elements, raising an error if the stack cannot grow 
            </summary>
            <param name="newSize"></param>
            <param name="message"></param>
        </member>
        <member name="M:KeraLua.Lua.CheckType(System.Int32,KeraLua.LuaType)">
            <summary>
            Checks whether the function argument arg has type type
            </summary>
            <param name="argument"></param>
            <param name="type"></param>
        </member>
        <member name="M:KeraLua.Lua.CheckObject``1(System.Int32,System.String,System.Boolean)">
            <summary>
            Checks whether the function argument arg is a userdata of the type tname
            </summary>
            <typeparam name="T"></typeparam>
            <param name="argument"></param>
            <param name="typeName"></param>
            <param name="freeGCHandle">True to release the GCHandle</param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.CheckUserData(System.Int32,System.String)">
            <summary>
            Checks whether the function argument arg is a userdata of the type tname (see luaL_newmetatable) and returns the userdata address
            </summary>
            <param name="argument"></param>
            <param name="typeName"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.DoFile(System.String)">
            <summary>
            Loads and runs the given file
            </summary>
            <param name="file"></param>
            <returns>It returns false if there are no errors or true in case of errors. </returns>
        </member>
        <member name="M:KeraLua.Lua.DoString(System.String)">
            <summary>
            Loads and runs the given string
            </summary>
            <param name="file"></param>
            <returns>It returns false if there are no errors or true in case of errors. </returns>
        </member>
        <member name="M:KeraLua.Lua.Error(System.String,System.Object[])">
            <summary>
            Raises an error. The error message format is given by fmt plus any extra arguments
            </summary>
            <param name="value"></param>
            <param name="v"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.ExecResult(System.Int32)">
            <summary>
            This function produces the return values for process-related functions in the standard library
            </summary>
            <param name="stat"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.FileResult(System.Int32,System.String)">
            <summary>
            This function produces the return values for file-related functions in the standard library
            </summary>
            <param name="stat"></param>
            <param name="fileName"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetMetaField(System.Int32,System.String)">
            <summary>
            Pushes onto the stack the field e from the metatable of the object at index obj and returns the type of the pushed value
            </summary>
            <param name="obj"></param>
            <param name="field"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.GetMetaTable(System.String)">
            <summary>
            Pushes onto the stack the metatable associated with name tname in the registry (see luaL_newmetatable) (nil if there is no metatable associated with that name)
            </summary>
            <param name="tableName"></param>
            <returns>Returns the type of the pushed value. </returns>
        </member>
        <member name="M:KeraLua.Lua.GetSubTable(System.Int32,System.String)">
            <summary>
            Ensures that the value t[fname], where t is the value at index idx, is a table, and pushes that table onto the stack. Returns true if it finds a previous table there and false if it creates a new table
            </summary>
            <param name="index"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Length(System.Int32)">
            <summary>
            Returns the "length" of the value at the given index as a number; it is equivalent to the '#' operator in Lua
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.LoadBuffer(System.Byte[],System.String,System.String)">
            <summary>
            Loads a buffer as a Lua chunk
            </summary>
            <param name="buffer"></param>
            <param name="name"></param>
            <param name="mode"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.LoadBuffer(System.Byte[],System.String)">
            <summary>
            </summary>
            <param name="buffer"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.LoadBuffer(System.Byte[])">
            <summary>
            Loads a buffer as a Lua chunk
            </summary>
            <param name="buffer"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.LoadString(System.String,System.String)">
            <summary>
            Loads a string as a Lua chunk
            </summary>
            <param name="chunk"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.LoadString(System.String)">
            <summary>
            Loads a string as a Lua chunk
            </summary>
            <param name="chunk"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.LoadFile(System.String,System.String)">
            <summary>
            Loads a file as a Lua chunk. This function uses lua_load to load the chunk in the file named filename
            </summary>
            <param name="file"></param>
            <param name="mode"></param>
            <returns>The status of operation</returns>
        </member>
        <member name="M:KeraLua.Lua.LoadFile(System.String)">
            <summary>
            Loads a file as a Lua chunk.
            </summary>
            <param name="file"></param>
            <returns>Return the status</returns>
        </member>
        <member name="M:KeraLua.Lua.NewLib(KeraLua.LuaRegister[])">
            <summary>
            Creates a new table and registers there the functions in list library. 
            </summary>
            <param name="library"></param>
        </member>
        <member name="M:KeraLua.Lua.NewLibTable(KeraLua.LuaRegister[])">
            <summary>
            Creates a new table with a size optimized to store all entries in the array l (but does not actually store them)
            </summary>
            <param name="library"></param>
        </member>
        <member name="M:KeraLua.Lua.NewMetaTable(System.String)">
            <summary>
            Creates a new table to be used as a metatable for userdata
            </summary>
            <param name="name"></param>
            <returns>If the registry already has the key tname, returns false.,</returns>
        </member>
        <member name="M:KeraLua.Lua.OpenLibs">
            <summary>
            Opens all standard Lua libraries into the given state. 
            </summary>
        </member>
        <member name="M:KeraLua.Lua.OptInteger(System.Int32,System.Int64)">
            <summary>
            If the function argument arg is an integer (or convertible to an integer), returns this integer. If this argument is absent or is nil, returns d
            </summary>
            <param name="argument"></param>
            <param name="d">default value</param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.OptBuffer(System.Int32,System.Byte[])">
            <summary>
            If the function argument arg is a string, returns this string. If this argument is absent or is nil, returns d        /// </summary>
            <param name="index"></param>
            <param name="def"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.OptString(System.Int32,System.String)">
            <summary>
            If the function argument arg is a string, returns this string. If this argument is absent or is nil, returns d
            </summary>
            <param name="index"></param>
            <param name="def"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.OptNumber(System.Int32,System.Double)">
            <summary>
            If the function argument arg is a number, returns this number. If this argument is absent or is nil, returns d
            </summary>
            <param name="index"></param>
            <param name="def"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Ref(KeraLua.LuaRegistry)">
            <summary>
            Creates and returns a reference, in the table at index t, for the object at the top of the stack (and pops the object). 
            </summary>
            <param name="tableIndex"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.RequireF(System.String,KeraLua.LuaFunction,System.Boolean)">
            <summary>
            If modname is not already present in package.loaded, calls function openf with string modname as an argument and sets the call result in package.loaded[modname], as if that function has been called through require
            </summary>
            <param name="moduleName"></param>
            <param name="openFunction"></param>
            <param name="global"></param>
        </member>
        <member name="M:KeraLua.Lua.SetFuncs(KeraLua.LuaRegister[],System.Int32)">
            <summary>
            Registers all functions in the array l (see luaL_Reg) into the table on the top of the stack (below optional upvalues, see next).        /// </summary>
            <param name="library"></param>
            <param name="numberUpValues"></param>
        </member>
        <member name="M:KeraLua.Lua.SetMetaTable(System.String)">
            <summary>
            Sets the metatable of the object at the top of the stack as the metatable associated with name tname in the registry
            </summary>
            <param name="name"></param>
        </member>
        <member name="M:KeraLua.Lua.TestObject``1(System.Int32,System.String,System.Boolean)">
            <summary>
            Test if the value at index is a reference data
            </summary>
            <typeparam name="T"></typeparam>
            <param name="argument"></param>
            <param name="typeName"></param>
            <param name="freeGCHandle">True to release the GCHandle of object</param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.TestUserData(System.Int32,System.String)">
            <summary>
            This function works like luaL_checkudata, except that, when the test fails, it returns NULL instead of raising an error.
            </summary>
            <param name="argument"></param>
            <param name="typeName"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Traceback(KeraLua.Lua,System.Int32)">
            <summary>
            Creates and pushes a traceback of the stack L1
            </summary>
            <param name="state"></param>
            <param name="level"> Tells at which level to start the traceback</param>
        </member>
        <member name="M:KeraLua.Lua.Traceback(KeraLua.Lua,System.String,System.Int32)">
            <summary>
            Creates and pushes a traceback of the stack L1
            </summary>
            <param name="state"></param>
            <param name="message">appended at the beginning of the traceback</param>
            <param name="level"> Tells at which level to start the traceback</param>
        </member>
        <member name="M:KeraLua.Lua.TypeName(System.Int32)">
            <summary>
            Returns the name of the type of the value at the given index. 
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="M:KeraLua.Lua.Unref(KeraLua.LuaRegistry,System.Int32)">
            <summary>
            Releases reference ref from the table at index t (see luaL_ref). The entry is removed from the table, so that the referred object can be collected. The reference ref is also freed to be used again
            </summary>
            <param name="tableIndex"></param>
            <param name="reference"></param>
        </member>
        <member name="M:KeraLua.Lua.Where(System.Int32)">
            <summary>
            Pushes onto the stack a string identifying the current position of the control at level lvl in the call stack
            </summary>
            <param name="level"></param>
        </member>
        <member name="T:KeraLua.LuaCompare">
            <summary>
            Used by Compare
            </summary>
        </member>
        <member name="F:KeraLua.LuaCompare.Equal">
            <summary>
             compares for equality (==)
            </summary>
        </member>
        <member name="F:KeraLua.LuaCompare.LessThen">
            <summary>
             compares for less than 
            </summary>
        </member>
        <member name="F:KeraLua.LuaCompare.LessOrEqual">
            <summary>
            compares for less or equal 
            </summary>
        </member>
        <member name="T:KeraLua.LuaDebug">
            <summary>
            Structure for lua debug information
            </summary>
            <remarks>
            Do not change this struct because it must match the lua structure lua_Debug
            </remarks>
            <author>Reinhard Ostermeier</author>
        </member>
        <member name="M:KeraLua.LuaDebug.FromIntPtr(System.IntPtr)">
            <summary>
            Get a LuaDebug from IntPtr
            </summary>
            <param name="ar"></param>
            <returns></returns>
        </member>
        <member name="F:KeraLua.LuaDebug.Event">
            <summary>
            Debug event code
            </summary>
        </member>
        <member name="P:KeraLua.LuaDebug.Name">
            <summary>
             a reasonable name for the given function. Because functions in Lua are first-class values, they do not have a fixed name: some functions can be the value of multiple global variables, while others can be stored only in a table field
            </summary>
        </member>
        <member name="P:KeraLua.LuaDebug.NameWhat">
            <summary>
            explains the name field. The value of namewhat can be "global", "local", "method", "field", "upvalue", or "" (the empty string)
            </summary>
        </member>
        <member name="P:KeraLua.LuaDebug.What">
            <summary>
             the string "Lua" if the function is a Lua function, "C" if it is a C function, "main" if it is the main part of a chunk
            </summary>
        </member>
        <member name="P:KeraLua.LuaDebug.Source">
            <summary>
             the name of the chunk that created the function. If source starts with a '@', it means that the function was defined in a file where the file name follows the '@'.
            </summary>
            
        </member>
        <member name="F:KeraLua.LuaDebug.CurrentLine">
            <summary>
             the current line where the given function is executing. When no line information is available, currentline is set to -1
            </summary>
        </member>
        <member name="F:KeraLua.LuaDebug.LineDefined">
            <summary>
            
            </summary>
        </member>
        <member name="F:KeraLua.LuaDebug.LastLineDefined">
            <summary>
             the line number where the definition of the function ends. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaDebug.NumberUpValues">
            <summary>
            number of upvalues
            </summary>
        </member>
        <member name="F:KeraLua.LuaDebug.NumberParameters">
            <summary>
            number of parameters
            </summary>
        </member>
        <member name="F:KeraLua.LuaDebug.IsVarArg">
            <summary>
             true if the function is a vararg function (always true for C functions).
            </summary>
        </member>
        <member name="F:KeraLua.LuaDebug.IsTailCall">
            <summary>
             true if this function invocation was called by a tail call. In this case, the caller of this level is not in the stack.
            </summary>
        </member>
        <member name="P:KeraLua.LuaDebug.ShortSource">
            <summary>
            a "printable" version of source, to be used in error messages
            </summary>
        </member>
        <member name="T:KeraLua.LuaGC">
            <summary>
            Garbage Collector operations
            </summary>
        </member>
        <member name="F:KeraLua.LuaGC.Stop">
            <summary>
             Stops the garbage collector. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaGC.Restart">
            <summary>
            Restarts the garbage collector. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaGC.Collect">
            <summary>
            Performs a full garbage-collection cycle. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaGC.Count">
            <summary>
             Returns the current amount of memory (in Kbytes) in use by Lua. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaGC.Countb">
            <summary>
             Returns the remainder of dividing the current amount of bytes of memory in use by Lua by 1024
            </summary>
        </member>
        <member name="F:KeraLua.LuaGC.Step">
            <summary>
             Performs an incremental step of garbage collection. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaGC.SetPause">
            <summary>
            Sets data as the new value for the pause of the collector (see §2.5) and returns the previous value
            </summary>
        </member>
        <member name="F:KeraLua.LuaGC.SetStepMultiplier">
            <summary>
            sets data as the new value for the step multiplier of the collector
            </summary>
        </member>
        <member name="F:KeraLua.LuaGC.IsRunning">
            <summary>
             returns a boolean that tells whether the collector is running
            </summary>
        </member>
        <member name="T:KeraLua.LuaHookEvent">
            <summary>
            Whenever a hook is called, its ar argument has its field event set to the specific event that triggered the hook
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookEvent.Call">
            <summary>
            The call hook: is called when the interpreter calls a function. The hook is called just after Lua enters the new function, before the function gets its arguments. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookEvent.Return">
            <summary>
            The return hook: is called when the interpreter returns from a function. The hook is called just before Lua leaves the function. There is no standard way to access the values to be returned by the function. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookEvent.Line">
            <summary>
            The line hook: is called when the interpreter is about to start the execution of a new line of code, or when it jumps back in the code (even to the same line). (This event only happens while Lua is executing a Lua function.) 
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookEvent.Count">
            <summary>
             The count hook: is called after the interpreter executes every count instructions. (This event only happens while Lua is executing a Lua function.) 
            </summary>
        </member>
        <member name="F:KeraLua.LuaHookEvent.TailCall">
            <summary>
            Tail Call
            </summary>
        </member>
        <member name="T:KeraLua.LuaOperation">
            <summary>
            Operation value used by Arith method
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Add">
            <summary>
            adition(+)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Sub">
            <summary>
             substraction (-)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Mul">
            <summary>
            Multiplication (*)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Mod">
            <summary>
            Modulo (%)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Pow">
            <summary>
            Exponentiation (^)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Div">
            <summary>
             performs float division (/)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Idiv">
            <summary>
             performs floor division (//)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Band">
            <summary>
            performs bitwise AND
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Bor">
            <summary>
            performs bitwise OR (|)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Bxor">
            <summary>
            performs bitwise exclusive OR (~)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Shl">
            <summary>
            performs left shift 
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Shr">
            <summary>
             performs right shift
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Unm">
            <summary>
             performs mathematical negation (unary -)
            </summary>
        </member>
        <member name="F:KeraLua.LuaOperation.Bnot">
            <summary>
            performs bitwise NOT (~)
            </summary>
        </member>
        <member name="T:KeraLua.LuaRegister">
            <summary>
            LuaRegister store the name and the delegate to register a native function
            </summary>
        </member>
        <member name="F:KeraLua.LuaRegister.name">
            <summary>
            Function name
            </summary>
        </member>
        <member name="F:KeraLua.LuaRegister.function">
            <summary>
            Function delegate
            </summary>
        </member>
        <member name="T:KeraLua.LuaRegistry">
            <summary>
            Enum for pseudo-index used by registry table
            </summary>
        </member>
        <member name="F:KeraLua.LuaRegistry.Index">
            <summary>
            pseudo-index used by registry table
            </summary>
        </member>
        <member name="T:KeraLua.LuaRegistryIndex">
            <summary>
            Registry index 
            </summary>
        </member>
        <member name="F:KeraLua.LuaRegistryIndex.MainThread">
            <summary>
             At this index the registry has the main thread of the state.
            </summary>
        </member>
        <member name="F:KeraLua.LuaRegistryIndex.Globals">
            <summary>
            At this index the registry has the global environment. 
            </summary>
        </member>
        <member name="T:KeraLua.LuaStatus">
            <summary>
            Lua Load/Call status return
            </summary>
        </member>
        <member name="F:KeraLua.LuaStatus.OK">
            <summary>
             success
            </summary>
        </member>
        <member name="F:KeraLua.LuaStatus.Yield">
            <summary>
            Yield
            </summary>
        </member>
        <member name="F:KeraLua.LuaStatus.ErrRun">
            <summary>
            a runtime error. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaStatus.ErrSyntax">
            <summary>
            syntax error during precompilation
            </summary>
        </member>
        <member name="F:KeraLua.LuaStatus.ErrMem">
            <summary>
             memory allocation error. For such errors, Lua does not call the message handler. 
            </summary>
        </member>
        <member name="F:KeraLua.LuaStatus.ErrGCMM">
            <summary>
             error while running a __gc metamethod. For such errors, Lua does not call the message handler
            </summary>
        </member>
        <member name="F:KeraLua.LuaStatus.ErrErr">
            <summary>
             error while running the message handler. 
            </summary>
        </member>
        <member name="T:KeraLua.LuaType">
            <summary>
            Lua types
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.None">
            <summary>
            
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.Nil">
            <summary>
            LUA_TNIL
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.Boolean">
            <summary>
            LUA_TBOOLEAN
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.LightUserData">
            <summary>
            LUA_TLIGHTUSERDATA
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.Number">
            <summary>
            LUA_TNUMBER
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.String">
            <summary>
            LUA_TSTRING
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.Table">
            <summary>
            LUA_TTABLE
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.Function">
            <summary>
            LUA_TFUNCTION
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.UserData">
            <summary>
            LUA_TUSERDATA
            </summary>
        </member>
        <member name="F:KeraLua.LuaType.Thread">
            <summary>
            LUA_TTHREAD
            </summary>
            //
        </member>
    </members>
</doc>
