Guest User

Untitled

a guest
Jan 21st, 2018
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. module Main where
  2. import Network.MessagePackRpc.Server
  3.  
  4. import Control.Monad
  5. import Control.Monad.IO.Class
  6. import Data.MessagePack
  7.  
  8. import Data.MessagePack.Object
  9.  
  10. import qualified Data.Hashable as HK
  11. import qualified Data.HashTable.IO as H
  12.  
  13. --type HashTable k v = H.BasicHashTable k v
  14. type HashTable k = H.BasicHashTable k Object
  15.  
  16. --set :: (HK.Hashable k, Eq k) => HashTable k -> k -> Object -> IO ()
  17. set :: HashTable Int -> Int -> Object -> IO ()
  18. set k v = H.insert h k v
  19. get :: (HK.Hashable k, Eq k) => HashTable k -> k -> IO (Maybe Object)
  20. get h k = H.lookup h k
  21.  
  22. -- objct2Hash :: (HK.Hashable h) => (Object h) -> h
  23. --objct2Hash (ObjectBool b) = b
  24. --objct2Hash (ObjectInteger i) = i
  25. -- objct2Hash (ObjectFloat f) = f
  26. -- objct2Hash (ObjectDouble d) = d
  27.  
  28.  
  29.  
  30. server port =
  31. do { hash <- H.newSized 1000
  32. ; serve port [ ("set", fun (\ k v ->
  33. Main.set hash k v))
  34. , ("get", fun (\ k ->
  35. Main.get k))
  36. ]
  37. }
Add Comment
Please, Sign In to add comment