{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} module IHP.HSX.ConvertibleStrings where import Prelude import Data.String.Conversions (ConvertibleStrings (convertString), cs) import Text.Blaze.Html5 import Data.Text import Data.ByteString import qualified Text.Blaze.Html5 as Html5 import qualified Data.ByteString.Lazy as LBS instance ConvertibleStrings String Html5.AttributeValue where {-# INLINE convertString #-} convertString = stringValue instance ConvertibleStrings Text Html5.AttributeValue where {-# INLINE convertString #-} convertString = Html5.textValue instance ConvertibleStrings String Html5.Html where {-# INLINE convertString #-} convertString = Html5.string instance ConvertibleStrings ByteString Html5.AttributeValue where {-# INLINE convertString #-} convertString value = convertString (cs value :: Text) instance ConvertibleStrings LBS.ByteString Html5.AttributeValue where {-# INLINE convertString #-} convertString value = convertString (cs value :: Text) instance ConvertibleStrings Text Html5.Html where {-# INLINE convertString #-} convertString = Html5.text