, bValToInteger
, bstrToString
, decode
+ , decodeWithLeftOvers
, encode
) where
decode :: ByteString -> Either ParseError BVal
decode = parse bencVal "BVal"
+decodeWithLeftOvers :: ByteString -> Either ParseError (BVal, ByteString)
+decodeWithLeftOvers = parse ((,) <$> bencVal <*> (fmap pack leftOvers)) "BVal with LeftOvers"
+ where leftOvers = manyTill anyToken eof
+
-- Encode BVal into a bencoded ByteString. Inverse of decode
-- TODO: Use builders and lazy byte string to get O(1) concatenation over O(n)