module Conversion.ByteString () where import BasePrelude import Conversion import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as BL import qualified Data.ByteString.Builder as BB instance Conversion BS.ByteString [Word8] where {-# INLINE convert #-} convert :: ByteString -> [Word8] convert = ByteString -> [Word8] BS.unpack instance Conversion BS.ByteString BL.ByteString where {-# INLINE convert #-} convert :: ByteString -> ByteString convert = ByteString -> ByteString BL.fromStrict instance Conversion BS.ByteString BB.Builder where {-# INLINE convert #-} convert :: ByteString -> Builder convert = ByteString -> Builder BB.byteString instance Conversion BL.ByteString [Word8] where {-# INLINE convert #-} convert :: ByteString -> [Word8] convert = ByteString -> [Word8] BL.unpack instance Conversion BL.ByteString BS.ByteString where {-# INLINE convert #-} convert :: ByteString -> ByteString convert = ByteString -> ByteString BL.toStrict instance Conversion BL.ByteString BB.Builder where {-# INLINE convert #-} convert :: ByteString -> Builder convert = ByteString -> Builder BB.lazyByteString instance Conversion BB.Builder [Word8] where {-# INLINE convert #-} convert :: Builder -> [Word8] convert = ByteString -> [Word8] forall a b. Conversion a b => a -> b convert (ByteString -> [Word8]) -> (Builder -> ByteString) -> Builder -> [Word8] forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . Builder -> ByteString BB.toLazyByteString instance Conversion BB.Builder BS.ByteString where {-# INLINE convert #-} convert :: Builder -> ByteString convert = ByteString -> ByteString forall a b. Conversion a b => a -> b convert (ByteString -> ByteString) -> (Builder -> ByteString) -> Builder -> ByteString forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . Builder -> ByteString BB.toLazyByteString instance Conversion BB.Builder BL.ByteString where {-# INLINE convert #-} convert :: Builder -> ByteString convert = Builder -> ByteString BB.toLazyByteString instance Conversion [Word8] BS.ByteString where {-# INLINE convert #-} convert :: [Word8] -> ByteString convert = [Word8] -> ByteString BS.pack instance Conversion [Word8] BL.ByteString where {-# INLINE convert #-} convert :: [Word8] -> ByteString convert = [Word8] -> ByteString BL.pack instance Conversion [Word8] BB.Builder where {-# INLINE convert #-} convert :: [Word8] -> Builder convert = (Word8 -> Builder) -> [Word8] -> Builder forall (t :: * -> *) m a. (Foldable t, Monoid m) => (a -> m) -> t a -> m foldMap Word8 -> Builder BB.word8 instance Conversion Word8 BS.ByteString where {-# INLINE convert #-} convert :: Word8 -> ByteString convert = Word8 -> ByteString BS.singleton instance Conversion Word8 BL.ByteString where {-# INLINE convert #-} convert :: Word8 -> ByteString convert = Word8 -> ByteString BL.singleton instance Conversion Word8 BB.Builder where {-# INLINE convert #-} convert :: Word8 -> Builder convert = Word8 -> Builder BB.word8