module Streamly.External.LMDB.Internal where

import Foreign (Ptr)
import Streamly.External.LMDB.Internal.Foreign (MDB_dbi_t, MDB_env)

-- This is in a separate internal module because the tests make use of the Database constructor.

class Mode a where
  isReadOnlyMode :: a -> Bool

data ReadWrite

data ReadOnly

instance Mode ReadWrite where isReadOnlyMode :: ReadWrite -> Bool
isReadOnlyMode ReadWrite
_ = Bool
False

instance Mode ReadOnly where isReadOnlyMode :: ReadOnly -> Bool
isReadOnlyMode ReadOnly
_ = Bool
True

data Database mode = Database (Ptr MDB_env) MDB_dbi_t