Advertisement
Guest User

Untitled

a guest
Mar 1st, 2015
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. getSegments :: Get [Segment]
  2. getSegments = do
  3.   empty <- isEmpty
  4.   if empty
  5.     then return []
  6.     else do seg <- trace "\ngetting segment\n" getSegment
  7.             segs <- trace "\nGETTING SEGMENTS\n" getSegments
  8.             return $ case seg of
  9.               END -> trace "FOUND END" [seg]
  10.               _ -> trace ("Found " ++ (show seg) ++ "keep looking!") (seg:segs)
  11.  
  12. getSegment :: Get Segment
  13. getSegment = do
  14.   typ <- trace "typ" getWord8
  15.   len <- trace "len" getWord8
  16.   bytes <- trace "bs" getByteString (fromIntegral len)
  17.   return $! case typ of
  18.     0 -> trace "\nEND\n" END
  19.     1 -> trace "\nTXT\n" $ Txt $ decodeUtf8 bytes
  20.     2 -> trace "\nIMG\n" $ Img $ parseUUID bytes
  21.     3 -> trace "\nCTX\n" $ CustomTxt $ decodeUtf8 bytes
  22.     4 -> trace "\nCBI\n" $ CustomBin bytes
  23.     x -> error $ "Segment with unknown type byte: " ++ show x
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement