-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Allow aeson data types to be used with lua.
--
-- This package provides instances to push and receive any datatype
-- encodable as JSON to and from the Lua stack.
@package hslua-aeson
@version 2.0.1
-- | Glue to HsLua for aeson values.
--
-- This provides a StackValue instance for aeson's
-- Value type. The following conventions are used:
--
--
-- - Null values are encoded as a special value (stored in the
-- registry field HSLUA_AESON_NULL). Using nil would
-- cause problems with null-containing arrays.
-- - Objects are converted to tables in a straight-forward way.
-- - Arrays are converted to Lua tables. Array-length is included as
-- the value at index 0. This makes it possible to distinguish between
-- empty arrays and empty objects.
-- - JSON numbers are converted to Lua numbers (usually doubles), which
-- can cause a loss of precision.
--
module HsLua.Aeson
peekValue :: LuaError e => Peeker e Value
-- | Hslua StackValue instance for the Aeson Value data type.
pushValue :: LuaError e => Pusher e Value
-- | Try reading the value under the given index as a vector.
peekVector :: LuaError e => Peeker e a -> Peeker e (Vector a)
-- | Push a vector onto the stack.
pushVector :: LuaError e => Pusher e a -> Pusher e (Vector a)
-- | Push the value which represents JSON null values to the stack (a
-- specific empty table by default). Internally, this uses the contents
-- of the HSLUA_AESON_NULL registry field; modifying this field
-- is possible, but it must always be non-nil.
pushNull :: LuaError e => LuaE e ()
peekScientific :: Peeker e Scientific
pushScientific :: Pusher e Scientific
-- | Retrieves a KeyMap from a Lua table.
peekKeyMap :: Peeker e a -> Peeker e (KeyMap a)
-- | Pushes a KeyMap onto the stack.
pushKeyMap :: LuaError e => Pusher e a -> Pusher e (KeyMap a)