utf8-string-0.3.4: Support for reading and writing UTF8 StringsSource codeContentsIndex
Codec.Binary.UTF8.Generic
Description
This module provides fast, validated encoding and decoding functions between ByteStrings and Strings. It does not exactly match the output of the Codec.Binary.UTF8.String output for invalid encodings as the number of replacement characters is sometimes longer.
Synopsis
class (Num s, Ord s) => UTF8Bytes b s | b -> s where
bsplit :: s -> b -> (b, b)
bdrop :: s -> b -> b
buncons :: b -> Maybe (Word8, b)
elemIndex :: Word8 -> b -> Maybe s
empty :: b
null :: b -> Bool
pack :: [Word8] -> b
tail :: b -> b
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
class (Num s, Ord s) => UTF8Bytes b s | b -> s whereSource
Methods
bsplit :: s -> b -> (b, b)Source
bdrop :: s -> b -> bSource
buncons :: b -> Maybe (Word8, b)Source
elemIndex :: Word8 -> b -> Maybe sSource
empty :: bSource
null :: b -> BoolSource
pack :: [Word8] -> bSource
tail :: b -> bSource
show/hide Instances
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 then 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 then n characters, then we return the 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 fuction is strict in the acumulator.
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 replacment characters.
lines :: UTF8Bytes b s => b -> [b]Source
Split a string into a list of lines. Lines are termianted by '\n' or the end of the string. Empty line may not be terminated by the end of the string. See also 'lines\''.
lines' :: UTF8Bytes b s => b -> [b]Source
Split a string into a list of lines. Lines are termianted by '\n' or the end of the string. Empty line may not be terminated by the end of the string. This function preserves the terminators. See also lines.
Produced by Haddock version 2.6.0