{-# LANGUAGE RecordWildCards #-} module Database.RocksDB.ReadOptions ( ReadOptions(..) , defaultReadOptions , marshalReadOptions ) where import Database.RocksDB.Internals import Database.RocksDB.Utils import Foreign hiding (newForeignPtr) import Foreign.Concurrent data ReadOptions = ReadOptions { verityChecksums :: !(Maybe Bool) , fillCache :: !(Maybe Bool) } defaultReadOptions :: ReadOptions {-# INLINEABLE defaultReadOptions #-} defaultReadOptions = ReadOptions {verityChecksums = Nothing, fillCache = Nothing} marshalReadOptions :: ReadOptions -> IO (ForeignPtr RocksdbReadoptions) {-# INLINEABLE marshalReadOptions #-} marshalReadOptions ReadOptions {..} = do ropts_p <- c_rocksdb_readoptions_create setBoolOptions verityChecksums $ c_rocksdb_readoptions_set_verify_checksums ropts_p setBoolOptions fillCache $ c_rocksdb_readoptions_set_fill_cache ropts_p newForeignPtr ropts_p $ c_rocksdb_readoptions_destroy ropts_p