module Database.Groundhog.Generic.Sql.String ( module Database.Groundhog.Generic.Sql , StringS (..) ) where import Database.Groundhog.Core import Database.Groundhog.Generic.Sql import Data.Monoid import Data.String newtype StringS = StringS { fromStringS :: ShowS } instance Monoid StringS where mempty = StringS id (StringS s1) `mappend` (StringS s2) = StringS (s1 . s2) instance IsString StringS where fromString s = StringS (s++) instance StringLike StringS where fromChar c = StringS (c:) {-# SPECIALIZE (<>) :: RenderS StringS -> RenderS StringS -> RenderS StringS #-} {-# SPECIALIZE renderArith :: (PersistEntity v, Constructor c, DbDescriptor db) => Proxy db -> (StringS -> StringS) -> Arith v c a -> RenderS StringS #-} {-# SPECIALIZE renderCond :: (PersistEntity v, Constructor c, DbDescriptor db) => Proxy db -> (StringS -> StringS) -> (StringS -> StringS -> StringS) -> (StringS -> StringS -> StringS) -> Cond v c -> Maybe (RenderS StringS) #-} {-# SPECIALIZE renderOrders :: (PersistEntity v, Constructor c) => (StringS -> StringS) -> [Order v c] -> StringS #-} {-# SPECIALIZE renderUpdates :: (PersistEntity v, Constructor c, DbDescriptor db) => Proxy db -> (StringS -> StringS) -> [Update v c] -> Maybe (RenderS StringS) #-} {-# SPECIALIZE renderFields :: (StringS -> StringS) -> [(String, DbType)] -> StringS #-} {-# SPECIALIZE renderChain :: (StringS -> StringS) -> FieldChain -> [StringS] -> [StringS] #-}