1 module Network.HTTP.Lucu.Utils
2 ( splitBy -- (a -> Bool) -> [a] -> [[a]]
3 , trim -- (a -> Bool) -> [a] -> [a]
4 , noCaseEq -- String -> String -> Bool
5 , isWhiteSpace -- Char -> Bool
13 splitBy :: (a -> Bool) -> [a] -> [[a]]
14 splitBy isSeparator src
15 = case break isSeparator src
16 of (last , [] ) -> last : []
17 (first, sep:rest) -> first : splitBy isSeparator rest
20 trim :: (a -> Bool) -> [a] -> [a]
21 trim p = trimTail . trimHead
23 trimHead = dropWhile p
24 trimTail = reverse . trimHead . reverse
27 noCaseEq :: String -> String -> Bool
29 = (map toLower a) == (map toLower b)
32 isWhiteSpace :: Char -> Bool
33 isWhiteSpace = flip elem " \t\r\n"