packages feed

tokyocabinet-haskell-0.0.4: examples/simple.hs

import Database.TokyoCabinet
import Data.ByteString.Char8 (ByteString, pack)

putsample :: String -> [(ByteString, ByteString)] -> TCM Bool
putsample file kv =
    do tc <- new :: TCM HDB
       open tc file [OWRITER, OCREAT]
       mapM (uncurry $ put tc) kv
       close tc
              
getsample :: String -> ByteString -> TCM (Maybe ByteString)
getsample file key =
    do tc <- new :: TCM HDB
       open tc file [OREADER]
       val <- get tc key
       close tc
       return val

main = runTCM (do putsample "foo.tch" [(pack "foo", pack "bar")]
                  getsample "foo.tch" (pack "foo")) >>=
       maybe (return ()) (putStrLn . show)