{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE FlexibleInstances #-} module Data.Stringz.ByteString where import Control.Lens import qualified Data.ByteString.Char8 as ByteStringChar8 import qualified Data.ByteString.Lazy.Char8 as ByteStringLazyChar8 import qualified Data.Text as Text import qualified Data.Text.Lazy as LazyText class HasByteString a where byteString :: Lens' a ByteStringChar8.ByteString instance HasByteString [Char] where byteString :: Lens' [Char] ByteString byteString = ([Char] -> ByteString) -> (ByteString -> [Char]) -> Iso [Char] [Char] ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso [Char] -> ByteString ByteStringChar8.pack ByteString -> [Char] ByteStringChar8.unpack instance HasByteString Text.Text where byteString :: Lens' Text ByteString byteString = (Text -> [Char]) -> ([Char] -> Text) -> Iso Text Text [Char] [Char] forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Text -> [Char] Text.unpack [Char] -> Text Text.pack (([Char] -> f [Char]) -> Text -> f Text) -> ((ByteString -> f ByteString) -> [Char] -> f [Char]) -> (ByteString -> f ByteString) -> Text -> f Text forall b c a. (b -> c) -> (a -> b) -> a -> c . ([Char] -> ByteString) -> (ByteString -> [Char]) -> Iso [Char] [Char] ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso [Char] -> ByteString ByteStringChar8.pack ByteString -> [Char] ByteStringChar8.unpack instance HasByteString LazyText.Text where byteString :: Lens' Text ByteString byteString = (Text -> [Char]) -> ([Char] -> Text) -> Iso Text Text [Char] [Char] forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Text -> [Char] LazyText.unpack [Char] -> Text LazyText.pack (([Char] -> f [Char]) -> Text -> f Text) -> ((ByteString -> f ByteString) -> [Char] -> f [Char]) -> (ByteString -> f ByteString) -> Text -> f Text forall b c a. (b -> c) -> (a -> b) -> a -> c . ([Char] -> ByteString) -> (ByteString -> [Char]) -> Iso [Char] [Char] ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso [Char] -> ByteString ByteStringChar8.pack ByteString -> [Char] ByteStringChar8.unpack instance HasByteString ByteStringChar8.ByteString where byteString :: Lens' ByteString ByteString byteString = (ByteString -> f ByteString) -> ByteString -> f ByteString forall a. a -> a id instance HasByteString ByteStringLazyChar8.ByteString where byteString :: Lens' ByteString ByteString byteString = (ByteString -> ByteString) -> (ByteString -> ByteString) -> Iso ByteString ByteString ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso ByteString -> ByteString ByteStringLazyChar8.toStrict ByteString -> ByteString ByteStringLazyChar8.fromStrict instance HasByteString a => HasByteString (Identity a) where byteString :: Lens' (Identity a) ByteString byteString = (Identity a -> a) -> (a -> Identity a) -> Iso (Identity a) (Identity a) a a forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Identity a -> a forall a. Identity a -> a runIdentity a -> Identity a forall a. a -> Identity a Identity ((a -> f a) -> Identity a -> f (Identity a)) -> ((ByteString -> f ByteString) -> a -> f a) -> (ByteString -> f ByteString) -> Identity a -> f (Identity a) forall b c a. (b -> c) -> (a -> b) -> a -> c . (ByteString -> f ByteString) -> a -> f a forall a. HasByteString a => Lens' a ByteString Lens' a ByteString byteString instance HasByteString a => HasByteString (Const a b) where byteString :: Lens' (Const a b) ByteString byteString = (Const a b -> a) -> (a -> Const a b) -> Iso (Const a b) (Const a b) a a forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Const a b -> a forall {k} a (b :: k). Const a b -> a getConst a -> Const a b forall {k} a (b :: k). a -> Const a b Const ((a -> f a) -> Const a b -> f (Const a b)) -> ((ByteString -> f ByteString) -> a -> f a) -> (ByteString -> f ByteString) -> Const a b -> f (Const a b) forall b c a. (b -> c) -> (a -> b) -> a -> c . (ByteString -> f ByteString) -> a -> f a forall a. HasByteString a => Lens' a ByteString Lens' a ByteString byteString class HasLazyByteString a where lazyByteString :: Lens' a ByteStringLazyChar8.ByteString instance HasLazyByteString [Char] where lazyByteString :: Lens' [Char] ByteString lazyByteString = ([Char] -> ByteString) -> (ByteString -> [Char]) -> Iso [Char] [Char] ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso [Char] -> ByteString ByteStringLazyChar8.pack ByteString -> [Char] ByteStringLazyChar8.unpack instance HasLazyByteString Text.Text where lazyByteString :: Lens' Text ByteString lazyByteString = (Text -> [Char]) -> ([Char] -> Text) -> Iso Text Text [Char] [Char] forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Text -> [Char] Text.unpack [Char] -> Text Text.pack (([Char] -> f [Char]) -> Text -> f Text) -> ((ByteString -> f ByteString) -> [Char] -> f [Char]) -> (ByteString -> f ByteString) -> Text -> f Text forall b c a. (b -> c) -> (a -> b) -> a -> c . ([Char] -> ByteString) -> (ByteString -> [Char]) -> Iso [Char] [Char] ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso [Char] -> ByteString ByteStringLazyChar8.pack ByteString -> [Char] ByteStringLazyChar8.unpack instance HasLazyByteString LazyText.Text where lazyByteString :: Lens' Text ByteString lazyByteString = (Text -> [Char]) -> ([Char] -> Text) -> Iso Text Text [Char] [Char] forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Text -> [Char] LazyText.unpack [Char] -> Text LazyText.pack (([Char] -> f [Char]) -> Text -> f Text) -> ((ByteString -> f ByteString) -> [Char] -> f [Char]) -> (ByteString -> f ByteString) -> Text -> f Text forall b c a. (b -> c) -> (a -> b) -> a -> c . ([Char] -> ByteString) -> (ByteString -> [Char]) -> Iso [Char] [Char] ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso [Char] -> ByteString ByteStringLazyChar8.pack ByteString -> [Char] ByteStringLazyChar8.unpack instance HasLazyByteString ByteStringChar8.ByteString where lazyByteString :: Lens' ByteString ByteString lazyByteString = (ByteString -> ByteString) -> (ByteString -> ByteString) -> Iso ByteString ByteString ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso ByteString -> ByteString ByteStringChar8.fromStrict ByteString -> ByteString ByteStringChar8.toStrict instance HasLazyByteString ByteStringLazyChar8.ByteString where lazyByteString :: Lens' ByteString ByteString lazyByteString = (ByteString -> f ByteString) -> ByteString -> f ByteString forall a. a -> a id instance HasLazyByteString a => HasLazyByteString (Identity a) where lazyByteString :: Lens' (Identity a) ByteString lazyByteString = (Identity a -> a) -> (a -> Identity a) -> Iso (Identity a) (Identity a) a a forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Identity a -> a forall a. Identity a -> a runIdentity a -> Identity a forall a. a -> Identity a Identity ((a -> f a) -> Identity a -> f (Identity a)) -> ((ByteString -> f ByteString) -> a -> f a) -> (ByteString -> f ByteString) -> Identity a -> f (Identity a) forall b c a. (b -> c) -> (a -> b) -> a -> c . (ByteString -> f ByteString) -> a -> f a forall a. HasLazyByteString a => Lens' a ByteString Lens' a ByteString lazyByteString instance HasLazyByteString a => HasLazyByteString (Const a b) where lazyByteString :: Lens' (Const a b) ByteString lazyByteString = (Const a b -> a) -> (a -> Const a b) -> Iso (Const a b) (Const a b) a a forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Const a b -> a forall {k} a (b :: k). Const a b -> a getConst a -> Const a b forall {k} a (b :: k). a -> Const a b Const ((a -> f a) -> Const a b -> f (Const a b)) -> ((ByteString -> f ByteString) -> a -> f a) -> (ByteString -> f ByteString) -> Const a b -> f (Const a b) forall b c a. (b -> c) -> (a -> b) -> a -> c . (ByteString -> f ByteString) -> a -> f a forall a. HasLazyByteString a => Lens' a ByteString Lens' a ByteString lazyByteString class AsByteString a where _ByteString :: Prism' a ByteStringChar8.ByteString instance AsByteString [Char] where _ByteString :: Prism' [Char] ByteString _ByteString = ([Char] -> ByteString) -> (ByteString -> [Char]) -> Iso [Char] [Char] ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso [Char] -> ByteString ByteStringChar8.pack ByteString -> [Char] ByteStringChar8.unpack instance AsByteString Text.Text where _ByteString :: Prism' Text ByteString _ByteString = (Text -> [Char]) -> ([Char] -> Text) -> Iso Text Text [Char] [Char] forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Text -> [Char] Text.unpack [Char] -> Text Text.pack (p [Char] (f [Char]) -> p Text (f Text)) -> (p ByteString (f ByteString) -> p [Char] (f [Char])) -> p ByteString (f ByteString) -> p Text (f Text) forall b c a. (b -> c) -> (a -> b) -> a -> c . p ByteString (f ByteString) -> p [Char] (f [Char]) forall a. AsByteString a => Prism' a ByteString Prism' [Char] ByteString _ByteString instance AsByteString LazyText.Text where _ByteString :: Prism' Text ByteString _ByteString = (Text -> [Char]) -> ([Char] -> Text) -> Iso Text Text [Char] [Char] forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Text -> [Char] LazyText.unpack [Char] -> Text LazyText.pack (p [Char] (f [Char]) -> p Text (f Text)) -> (p ByteString (f ByteString) -> p [Char] (f [Char])) -> p ByteString (f ByteString) -> p Text (f Text) forall b c a. (b -> c) -> (a -> b) -> a -> c . p ByteString (f ByteString) -> p [Char] (f [Char]) forall a. AsByteString a => Prism' a ByteString Prism' [Char] ByteString _ByteString instance AsByteString ByteStringChar8.ByteString where _ByteString :: Prism' ByteString ByteString _ByteString = p ByteString (f ByteString) -> p ByteString (f ByteString) forall a. a -> a id instance AsByteString ByteStringLazyChar8.ByteString where _ByteString :: Prism' ByteString ByteString _ByteString = (ByteString -> ByteString) -> (ByteString -> ByteString) -> Iso ByteString ByteString ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso ByteString -> ByteString ByteStringLazyChar8.toStrict ByteString -> ByteString ByteStringLazyChar8.fromStrict instance AsByteString a => AsByteString (Identity a) where _ByteString :: Prism' (Identity a) ByteString _ByteString = (Identity a -> a) -> (a -> Identity a) -> Iso (Identity a) (Identity a) a a forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Identity a -> a forall a. Identity a -> a runIdentity a -> Identity a forall a. a -> Identity a Identity (p a (f a) -> p (Identity a) (f (Identity a))) -> (p ByteString (f ByteString) -> p a (f a)) -> p ByteString (f ByteString) -> p (Identity a) (f (Identity a)) forall b c a. (b -> c) -> (a -> b) -> a -> c . p ByteString (f ByteString) -> p a (f a) forall a. AsByteString a => Prism' a ByteString Prism' a ByteString _ByteString instance AsByteString a => AsByteString (Const a b) where _ByteString :: Prism' (Const a b) ByteString _ByteString = (Const a b -> a) -> (a -> Const a b) -> Iso (Const a b) (Const a b) a a forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Const a b -> a forall {k} a (b :: k). Const a b -> a getConst a -> Const a b forall {k} a (b :: k). a -> Const a b Const (p a (f a) -> p (Const a b) (f (Const a b))) -> (p ByteString (f ByteString) -> p a (f a)) -> p ByteString (f ByteString) -> p (Const a b) (f (Const a b)) forall b c a. (b -> c) -> (a -> b) -> a -> c . p ByteString (f ByteString) -> p a (f a) forall a. AsByteString a => Prism' a ByteString Prism' a ByteString _ByteString class AsLazyByteString a where _LazyByteString :: Prism' a ByteStringLazyChar8.ByteString instance AsLazyByteString [Char] where _LazyByteString :: Prism' [Char] ByteString _LazyByteString = ([Char] -> ByteString) -> (ByteString -> [Char]) -> Iso [Char] [Char] ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso [Char] -> ByteString ByteStringLazyChar8.pack ByteString -> [Char] ByteStringLazyChar8.unpack instance AsLazyByteString Text.Text where _LazyByteString :: Prism' Text ByteString _LazyByteString = (Text -> [Char]) -> ([Char] -> Text) -> Iso Text Text [Char] [Char] forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Text -> [Char] Text.unpack [Char] -> Text Text.pack (p [Char] (f [Char]) -> p Text (f Text)) -> (p ByteString (f ByteString) -> p [Char] (f [Char])) -> p ByteString (f ByteString) -> p Text (f Text) forall b c a. (b -> c) -> (a -> b) -> a -> c . p ByteString (f ByteString) -> p [Char] (f [Char]) forall a. AsLazyByteString a => Prism' a ByteString Prism' [Char] ByteString _LazyByteString instance AsLazyByteString LazyText.Text where _LazyByteString :: Prism' Text ByteString _LazyByteString = (Text -> [Char]) -> ([Char] -> Text) -> Iso Text Text [Char] [Char] forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Text -> [Char] LazyText.unpack [Char] -> Text LazyText.pack (p [Char] (f [Char]) -> p Text (f Text)) -> (p ByteString (f ByteString) -> p [Char] (f [Char])) -> p ByteString (f ByteString) -> p Text (f Text) forall b c a. (b -> c) -> (a -> b) -> a -> c . p ByteString (f ByteString) -> p [Char] (f [Char]) forall a. AsLazyByteString a => Prism' a ByteString Prism' [Char] ByteString _LazyByteString instance AsLazyByteString ByteStringChar8.ByteString where _LazyByteString :: Prism' ByteString ByteString _LazyByteString = (ByteString -> ByteString) -> (ByteString -> ByteString) -> Iso ByteString ByteString ByteString ByteString forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso ByteString -> ByteString ByteStringLazyChar8.fromStrict ByteString -> ByteString ByteStringLazyChar8.toStrict instance AsLazyByteString ByteStringLazyChar8.ByteString where _LazyByteString :: Prism' ByteString ByteString _LazyByteString = p ByteString (f ByteString) -> p ByteString (f ByteString) forall a. a -> a id instance AsLazyByteString a => AsLazyByteString (Identity a) where _LazyByteString :: Prism' (Identity a) ByteString _LazyByteString = (Identity a -> a) -> (a -> Identity a) -> Iso (Identity a) (Identity a) a a forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Identity a -> a forall a. Identity a -> a runIdentity a -> Identity a forall a. a -> Identity a Identity (p a (f a) -> p (Identity a) (f (Identity a))) -> (p ByteString (f ByteString) -> p a (f a)) -> p ByteString (f ByteString) -> p (Identity a) (f (Identity a)) forall b c a. (b -> c) -> (a -> b) -> a -> c . p ByteString (f ByteString) -> p a (f a) forall a. AsLazyByteString a => Prism' a ByteString Prism' a ByteString _LazyByteString instance AsLazyByteString a => AsLazyByteString (Const a b) where _LazyByteString :: Prism' (Const a b) ByteString _LazyByteString = (Const a b -> a) -> (a -> Const a b) -> Iso (Const a b) (Const a b) a a forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b iso Const a b -> a forall {k} a (b :: k). Const a b -> a getConst a -> Const a b forall {k} a (b :: k). a -> Const a b Const (p a (f a) -> p (Const a b) (f (Const a b))) -> (p ByteString (f ByteString) -> p a (f a)) -> p ByteString (f ByteString) -> p (Const a b) (f (Const a b)) forall b c a. (b -> c) -> (a -> b) -> a -> c . p ByteString (f ByteString) -> p a (f a) forall a. AsLazyByteString a => Prism' a ByteString Prism' a ByteString _LazyByteString