]> git.rkrishnan.org Git - functorrent.git/blobdiff - src/FuncTorrent/Bencode.hs
Bencode: make encode a bit more readable
[functorrent.git] / src / FuncTorrent / Bencode.hs
index f1a29809f731149f15fbc8975ef21cb0f226d4e3..3a982ec0336da0f8ca5a31bbfb73ed4a29b2d78e 100644 (file)
@@ -16,7 +16,7 @@ import Control.Applicative ((<*))
 import Data.ByteString (ByteString, length, concat)
 import Data.ByteString.Char8 (unpack, pack)
 import Data.Functor ((<$>))
-import Data.Map.Strict (Map, fromList, keys, (!))
+import Data.Map.Strict (Map, fromList, toList)
 import Text.ParserCombinators.Parsec
 import qualified Text.Parsec.ByteString as ParsecBS
 
@@ -160,4 +160,5 @@ encode (Blist xs) = concat ["l", concat $ map encode xs, "e"]
 encode (Bdict d) = concat ["d", concat kvlist, "e"]
     where
       kvlist :: [ByteString]
-      kvlist = [concat [encode . Bstr . pack $ k , encode (d ! k)] | k <- keys d]
+      kvlist = [encPair kv | kv <- toList d]
+      encPair (k, v) = concat [encode . Bstr . pack $ k, encode v]