module Fmt
(
(%<),
(>%),
FromBuilder(..),
)
where
import Data.Text
import qualified Data.Text.Lazy as TL
import Data.Text.Lazy.Builder hiding (fromString)
import Data.Monoid
import Data.Text.Buildable
class FromBuilder a where
fromBuilder :: Builder -> a
instance FromBuilder Builder where
fromBuilder = id
instance FromBuilder String where
fromBuilder = TL.unpack . toLazyText
instance FromBuilder Text where
fromBuilder = TL.toStrict . toLazyText
instance FromBuilder TL.Text where
fromBuilder = toLazyText
(%<) :: (Buildable a, FromBuilder b) => Builder -> a -> b
(%<) x a = fromBuilder (x <> build a)
(>%) :: (FromBuilder b) => Builder -> Builder -> b
(>%) x a = fromBuilder (x <> a)