{-# OPTIONS_HADDOCK hide #-}
module Data.ByteString.Short.Char8 (
ShortByteString,
pack,
unpack,
takeWhile,
) where
import Data.ByteString.Short ( ShortByteString )
import Prelude as P hiding ( takeWhile )
import qualified Data.ByteString.Internal as BI
import qualified Data.ByteString.Short as BS
import qualified Data.ByteString.Short.Extra as BS
{-# INLINEABLE unpack #-}
unpack :: ShortByteString -> [Char]
unpack :: ShortByteString -> [Char]
unpack = (Word8 -> Char) -> [Word8] -> [Char]
forall a b. (a -> b) -> [a] -> [b]
P.map Word8 -> Char
BI.w2c ([Word8] -> [Char])
-> (ShortByteString -> [Word8]) -> ShortByteString -> [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShortByteString -> [Word8]
BS.unpack
{-# INLINEABLE pack #-}
pack :: String -> ShortByteString
pack :: [Char] -> ShortByteString
pack = [Word8] -> ShortByteString
BS.pack ([Word8] -> ShortByteString)
-> ([Char] -> [Word8]) -> [Char] -> ShortByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Char -> Word8) -> [Char] -> [Word8]
forall a b. (a -> b) -> [a] -> [b]
P.map Char -> Word8
BI.c2w
{-# INLINEABLE takeWhile #-}
takeWhile :: (Char -> Bool) -> ShortByteString -> ShortByteString
takeWhile :: (Char -> Bool) -> ShortByteString -> ShortByteString
takeWhile Char -> Bool
f = (Word8 -> Bool) -> ShortByteString -> ShortByteString
BS.takeWhile (Char -> Bool
f (Char -> Bool) -> (Word8 -> Char) -> Word8 -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word8 -> Char
BI.w2c)