Portability | portable |
---|---|
Stability | experimental |
Maintainer | emertens@galois.com |
Safe Haskell | Trustworthy |
- class (Num s, Ord s) => UTF8Bytes b s | b -> s where
- decode :: UTF8Bytes b s => b -> Maybe (Char, s)
- replacement_char :: Char
- uncons :: UTF8Bytes b s => b -> Maybe (Char, b)
- splitAt :: UTF8Bytes b s => s -> b -> (b, b)
- take :: UTF8Bytes b s => s -> b -> b
- drop :: UTF8Bytes b s => s -> b -> b
- span :: UTF8Bytes b s => (Char -> Bool) -> b -> (b, b)
- break :: UTF8Bytes b s => (Char -> Bool) -> b -> (b, b)
- fromString :: UTF8Bytes b s => String -> b
- toString :: UTF8Bytes b s => b -> String
- foldl :: UTF8Bytes b s => (a -> Char -> a) -> a -> b -> a
- foldr :: UTF8Bytes b s => (Char -> a -> a) -> a -> b -> a
- length :: UTF8Bytes b s => b -> s
- lines :: UTF8Bytes b s => b -> [b]
- lines' :: UTF8Bytes b s => b -> [b]
Documentation
decode :: UTF8Bytes b s => b -> Maybe (Char, s)Source
Try to extract a character from a byte string.
Returns Nothing
if there are no more bytes in the byte string.
Otherwise, it returns a decoded character and the number of
bytes used in its representation.
Errors are replaced by character '\0xFFFD'.
replacement_char :: CharSource
This character is used to mark errors in a UTF8 encoded string.
uncons :: UTF8Bytes b s => b -> Maybe (Char, b)Source
Get the first character of a byte string, if any. Malformed characters are replaced by '\0xFFFD'.
splitAt :: UTF8Bytes b s => s -> b -> (b, b)Source
Split after a given number of characters. Negative values are treated as if they are 0.
take :: UTF8Bytes b s => s -> b -> bSource
take n s
returns the first n
characters of s
.
If s
has less than n
characters, then we return the whole of s
.
drop :: UTF8Bytes b s => s -> b -> bSource
drop n s
returns the s
without its first n
characters.
If s
has less than n
characters, then we return an empty string.
span :: UTF8Bytes b s => (Char -> Bool) -> b -> (b, b)Source
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.
break :: UTF8Bytes b s => (Char -> Bool) -> b -> (b, b)Source
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.
fromString :: UTF8Bytes b s => String -> bSource
Converts a Haskell string into a UTF8 encoded bytestring.
toString :: UTF8Bytes b s => b -> StringSource
Convert a UTF8 encoded bytestring into a Haskell string. Invalid characters are replaced with '\xFFFD'.
foldl :: UTF8Bytes b s => (a -> Char -> a) -> a -> b -> aSource
Traverse a bytestring (left biased). This function is strict in the accumulator.
foldr :: UTF8Bytes b s => (Char -> a -> a) -> a -> b -> aSource
Traverse a bytestring (right biased).
length :: UTF8Bytes b s => b -> sSource
Counts the number of characters encoded in the bytestring. Note that this includes replacement characters.