packages feed

tokyocabinet-haskell-0.0.4: examples/tcfdb.hs

import Control.Monad
import Database.TokyoCabinet.FDB

main = do fdb <- new
          -- open the database
          open fdb "casket.tcf" [OWRITER, OCREAT] >>= err fdb
          -- store records
          puts fdb [(1, "one"), (12, "twelve"), (144, "one forty four")]
                    >>= err fdb . (all id)
          -- retrieve records
          get fdb (1 :: Int) >>= maybe (error "something goes wrong") putStrLn
          -- close the database
          close fdb >>= err fdb
    where
      puts :: FDB -> [(Int, String)] -> IO [Bool]
      puts fdb = mapM (uncurry $ put fdb)

      err :: FDB -> Bool -> IO ()
      err fdb = flip unless $ ecode fdb >>= error . show