Data.ByteString.UTF8

utf8-string-1.0.2: Support for reading and writing UTF8 Strings

Copyright | (c) Iavor S. Diatchki 2009
License | BSD3-style (see LICENSE)
Maintainer | emertens@galois.com
Stability | experimental
Portability | portable This module provides fast, validated encoding and decoding functions between 'ByteString's and 'String's. 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.
Safe Haskell | Trustworthy
Language | Haskell2010

Data.ByteString.UTF8

Description

Synopsis

- data ByteString
- decode :: ByteString -> Maybe (Char, Int)
- replacement_char :: Char
- uncons :: ByteString -> Maybe (Char, ByteString)
- splitAt :: Int -> ByteString -> (ByteString, ByteString)
- take :: Int -> ByteString -> ByteString
- drop :: Int -> ByteString -> ByteString
- span :: (Char -> Bool) -> ByteString -> (ByteString, ByteString)
- break :: (Char -> Bool) -> ByteString -> (ByteString, ByteString)
- fromChar :: Char -> ByteString
- fromString :: String -> ByteString
- toString :: ByteString -> String
- foldl :: (a -> Char -> a) -> a -> ByteString -> a
- foldr :: (Char -> a -> a) -> a -> ByteString -> a
- length :: ByteString -> Int
- lines :: ByteString -> [ByteString]
- lines' :: ByteString -> [ByteString]

# Documentation

data ByteString #

#### Instances

Instances details

Data ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ByteString -> c ByteString gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ByteString toConstr :: ByteString -> Constr dataTypeOf :: ByteString -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ByteString) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ByteString) gmapT :: (forall b. Data b => b -> b) -> ByteString -> ByteString gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ByteString -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ByteString -> r gmapQ :: (forall d. Data d => d -> u) -> ByteString -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ByteString -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ByteString -> m ByteString gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ByteString -> m ByteString gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ByteString -> m ByteString
IsString ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods fromString :: String -> ByteString
Monoid ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods mempty :: ByteString mappend :: ByteString -> ByteString -> ByteString mconcat :: [ByteString] -> ByteString
Semigroup ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods (<>) :: ByteString -> ByteString -> ByteString sconcat :: NonEmpty ByteString -> ByteString stimes :: Integral b => b -> ByteString -> ByteString
IsList ByteString |
Instance details Defined in Data.ByteString.Internal.Type Associated Types type Item ByteString Methods fromList :: [Item ByteString] -> ByteString fromListN :: Int -> [Item ByteString] -> ByteString toList :: ByteString -> [Item ByteString]
Read ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods readsPrec :: Int -> ReadS ByteString readList :: ReadS [ByteString] readPrec :: ReadPrec ByteString readListPrec :: ReadPrec [ByteString]
Show ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods showsPrec :: Int -> ByteString -> ShowS show :: ByteString -> String showList :: [ByteString] -> ShowS
NFData ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods rnf :: ByteString -> ()
Eq ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods (==) :: ByteString -> ByteString -> Bool (/=) :: ByteString -> ByteString -> Bool
Ord ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods compare :: ByteString -> ByteString -> Ordering (<) :: ByteString -> ByteString -> Bool (<=) :: ByteString -> ByteString -> Bool (>) :: ByteString -> ByteString -> Bool (>=) :: ByteString -> ByteString -> Bool max :: ByteString -> ByteString -> ByteString min :: ByteString -> ByteString -> ByteString
Lift ByteString |
Instance details Defined in Data.ByteString.Internal.Type Methods lift :: Quote m => ByteString -> m Exp liftTyped :: forall (m :: Type -> Type). Quote m => ByteString -> Code m ByteString
UTF8Bytes ByteString Int # |
Instance details Defined in Codec.Binary.UTF8.Generic Methods bsplit :: Int -> ByteString -> (ByteString, ByteString) # bdrop :: Int -> ByteString -> ByteString # buncons :: ByteString -> Maybe (Word8, ByteString) # elemIndex :: Word8 -> ByteString -> Maybe Int # empty :: ByteString # null :: ByteString -> Bool # pack :: [Word8] -> ByteString # tail :: ByteString -> ByteString #
type Item ByteString |
Instance details Defined in Data.ByteString.Internal.Type type Item ByteString = Word8

decode :: ByteString -> Maybe (Char, Int) #

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 :: Char #

This character is used to mark errors in a UTF8 encoded string.

uncons :: ByteString -> Maybe (Char, ByteString) #

Get the first character of a byte string, if any. Malformed characters are replaced by `'\0xFFFD'`.

splitAt :: Int -> ByteString -> (ByteString, ByteString) #

Split after a given number of characters. Negative values are treated as if they are 0.

take :: Int -> ByteString -> ByteString #

`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 :: Int -> ByteString -> ByteString #

`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 :: (Char -> Bool) -> ByteString -> (ByteString, ByteString) #

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 :: (Char -> Bool) -> ByteString -> (ByteString, ByteString) #

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.

fromChar :: Char -> ByteString #

Converts a Haskell char into a UTF8 encoded bytestring.

fromString :: String -> ByteString #

Converts a Haskell string into a UTF8 encoded bytestring.

toString :: ByteString -> String #

Convert a UTF8 encoded bytestring into a Haskell string. Invalid characters are replaced with `'\0xFFFD'`.

foldl :: (a -> Char -> a) -> a -> ByteString -> a #

Traverse a bytestring (left biased). This function is strict in the accumulator.

foldr :: (Char -> a -> a) -> a -> ByteString -> a #

Traverse a bytestring (right biased).

length :: ByteString -> Int #

Counts the number of characters encoded in the bytestring. Note that this includes replacement characters.

lines :: ByteString -> [ByteString] #

Split a string into a list of lines. Lines are terminated by `'\n'` or the end of the string. Empty lines may not be terminated by the end of the string. See also `lines'`.

lines' :: ByteString -> [ByteString] #

Split a string into a list of lines. Lines are terminated by `'\n'` or the end of the string. Empty lines may not be terminated by the end of the string. This function preserves the terminators. See also `lines`.