5e564947d7
This will be easy to implement with servant. It's also very efficient, and fairly future-proof. Eg, could add another frame with other data. This does make it a bit harder to use this protocol, but netstrings probably take about 5 minutes to implement? Let's see... import Text.Read import Data.List toNetString :: String -> String toNetString s = show (length s) ++ ":" ++ s ++ "," nextNetString :: String -> Maybe (String, String) nextNetString s = case break (== ':') s of ([], _) -> Nothing (sn, rest) -> do n <- readMaybe sn let (v, rest') = splitAt n (drop 1 rest) return (v, drop 1 rest') Ok, well, that took about 10 minutes ;-) |
||
---|---|---|
.. | ||
draft1.mdwn |