Copyright | (c) Matt Morrow 2008 |
---|---|
License | BSD3 |
Maintainer | Matt Morrow <mjm2002@gmail.com> |
Stability | provisional |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
Codec.Binary.UTF8.Light
Description
Lightweight UTF8 handling.
- class UTF8 a where
- encode :: a -> ByteString
- decode :: ByteString -> a
- lenUTF8 :: Word8 -> Int
- lenUTF16 :: Word16 -> Int
- countUTF8 :: ByteString -> [Int]
- decodeUTF8 :: ByteString -> [Word32]
- encodeUTF8 :: [Word32] -> ByteString
- encodeUTF8' :: [Word32] -> [[Word8]]
- withUTF8 :: UTF8 a => a -> (ByteString -> b) -> b
- putUTF8 :: UTF8 a => a -> IO ()
- putUTF8Ln :: UTF8 a => a -> IO ()
- hPutUTF8 :: UTF8 a => Handle -> a -> IO ()
- hPutUTF8Ln :: UTF8 a => Handle -> a -> IO ()
- readUTF8File :: UTF8 a => FilePath -> IO a
- writeUTF8File :: UTF8 a => FilePath -> a -> IO ()
- appendUTF8File :: UTF8 a => FilePath -> a -> IO ()
- hGetUTF8Line :: UTF8 a => Handle -> IO a
- hGetUTF8Contents :: UTF8 a => Handle -> IO a
- hGetUTF8 :: UTF8 a => Handle -> Int -> IO a
- hGetUTF8NonBlocking :: UTF8 a => Handle -> Int -> IO a
- c2w :: Char -> Word32
- w2c :: Word32 -> Char
- i2w :: Int -> Word32
- w2i :: Word32 -> Int
- flipUTF8 :: UTF8 a => a -> a
- unflipUTF8 :: UTF8 a => a -> a
- flipTab :: [(Int, Int)]
- unflipTab :: [(Int, Int)]
- showHex :: Int -> String
- toBits :: Word8 -> [Word8]
- fromBits :: [Word8] -> Word8
- data Int8 :: *
- data Int16 :: *
- data Int32 :: *
- data Word :: *
- data Word8 :: *
- data Word16 :: *
- data Word32 :: *
Documentation
Instances:
ByteString
, String
, [Word32]
, [Word]
, [Int32]
, [Int]
countUTF8 :: ByteString -> [Int] Source
Lengths in Word8s
decodeUTF8 :: ByteString -> [Word32] Source
encodeUTF8 :: [Word32] -> ByteString Source
encodeUTF8' :: [Word32] -> [[Word8]] Source
Word32s not representing valid UTF8 chars are dropped.
withUTF8 :: UTF8 a => a -> (ByteString -> b) -> b Source
hPutUTF8Ln :: UTF8 a => Handle -> a -> IO () Source
readUTF8File :: UTF8 a => FilePath -> IO a Source
writeUTF8File :: UTF8 a => FilePath -> a -> IO () Source
appendUTF8File :: UTF8 a => FilePath -> a -> IO () Source
hGetUTF8Line :: UTF8 a => Handle -> IO a Source
hGetUTF8Contents :: UTF8 a => Handle -> IO a Source
hGetUTF8 :: UTF8 a => Handle -> Int -> IO a Source
Be careful that you're sure you're not chopping a UTF8 char in two!
unflipUTF8 :: UTF8 a => a -> a Source
ghci> putUTF8Ln $ (unflipUTF8 . flipUTF8) "[?np_bs!]" [?np_bs!]
data Int8 :: *
8-bit signed integer type
data Int16 :: *
16-bit signed integer type
data Int32 :: *
32-bit signed integer type
data Word :: *
data Word8 :: *
8-bit unsigned integer type
data Word16 :: *
16-bit unsigned integer type