diff options
Diffstat (limited to 'montis/src/Montis/Core/World/Interface.hs')
| -rw-r--r-- | montis/src/Montis/Core/World/Interface.hs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/montis/src/Montis/Core/World/Interface.hs b/montis/src/Montis/Core/World/Interface.hs new file mode 100644 index 0000000..39d4e4c --- /dev/null +++ b/montis/src/Montis/Core/World/Interface.hs @@ -0,0 +1,20 @@ +-- | Provides the world interface through foreign exports. +module Montis.Core.World.Interface where + +import Data.ByteString (ByteString) +import Data.Data (Typeable) +import Data.Singletons.Decide (Void) +import Foreign (Ptr, StablePtr, Word32) +import Foreign.C (CChar) +import Montis.Core.State (SelfPtr) + +-- type OpqStT l w = StablePtr (Context l w, State l w) + +class OpaqueState s where + hotStart :: SelfPtr -> ByteString -> IO s + + coldStart :: SelfPtr -> IO s + + marshalState :: s -> ByteString + + teardown :: s -> IO () |