lua-2.3.2: src/Lua/Ersatz/Auxiliary.hs
{-|
Module : Lua.Ersatz.Auxiliary
Copyright : © 2007–2012 Gracjan Polak;
© 2012–2016 Ömer Sinan Ağacan;
© 2017-2024 Albert Krewinkel
License : MIT
Maintainer : Albert Krewinkel <tarleb@hslua.org>
Stability : beta
Portability : non-portable (depends on GHC)
Raw bindings to ersatz functions of the auxiliary library.
-}
module Lua.Ersatz.Auxiliary
( -- * Auxiliary Library
hsluaL_newstate
, hsluaL_requiref
, hsluaL_tolstring
) where
import Foreign.C (CChar, CInt (CInt), CSize)
import Lua.Types (CFunction, StackIndex, StatusCode)
import Foreign.Ptr (Ptr)
import qualified Lua.Types as Lua
-- | Creates a new Lua state and set extra registry values for error
-- bookkeeping.
foreign import ccall unsafe "hslauxlib.h hsluaL_newstate"
hsluaL_newstate :: IO Lua.State
-- | 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
-- <https://www.lua.org/manual/5.4/manual.html#pdf-require require>.
--
-- If @glb@ is true, also stores the module into global @modname@.
--
-- Leaves a copy of the module on the stack.
foreign import ccall unsafe "hslauxlib.c hsluaL_requiref"
hsluaL_requiref :: Lua.State
-> Ptr CChar -- ^ modname
-> CFunction -- ^ openf
-> Lua.LuaBool -- ^ glb
-> Ptr StatusCode
-> IO ()
-- | Converts object to string, respecting any metamethods; returns
-- @NULL@ if an error occurs.
foreign import ccall safe "hslauxlib.h hsluaL_tolstring"
hsluaL_tolstring :: Lua.State -> StackIndex -> Ptr CSize -> IO (Ptr CChar)