Add documentation for span and break
authoriavor.diatchki <iavor.diatchki@gmail.com>
Mon, 25 Feb 2008 06:58:11 +0000 (22:58 -0800)
committeriavor.diatchki <iavor.diatchki@gmail.com>
Mon, 25 Feb 2008 06:58:11 +0000 (22:58 -0800)
darcs-hash:20080225065811-5035a-82be3851bf6d6c6c10a3fbc5f205961b33cb98ac.gz

Data/ByteString/UTF8.hs

index 31e98e9..b777fd9 100644 (file)
@@ -103,6 +103,10 @@ take n bs = fst (splitAt n bs)
 drop :: Int -> B.ByteString -> B.ByteString
 drop n bs = snd (splitAt n bs)
 
+-- | Split a string into two parts:  the first is the longest prefix
+-- that contains only characters that satisfy the predicate; the second
+-- part is the rest of the string.
+-- Invalid characters are passed as '\0xFFFD' to the predicate.
 span :: (Char -> Bool) -> B.ByteString -> (B.ByteString, B.ByteString)
 span p bs = loop 0 bs
   where loop a cs = case decode cs of
@@ -110,6 +114,10 @@ span p bs = loop 0 bs
                                                   loop (a+n) (B.drop n cs)
                       _ -> B.splitAt a bs
 
+-- | Split a string into two parts:  the first is the longest prefix
+-- that contains only characters that do not satisfy the predicate; the second
+-- part is the rest of the string.
+-- Invalid characters are passed as '\0xFFFD' to the predicate.
 break :: (Char -> Bool) -> B.ByteString -> (B.ByteString, B.ByteString)
 break p bs = span (not . p) bs