module Data.Text.ToTextBuilder where
import Data.Text.Lazy.Builder
import Data.Text.Lazy.Builder.Int (decimal)
import Data.Text.Lazy.Builder.RealFloat (realFloat)
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.Encoding as TL
class ToTextBuilder a where
toTextBuilder :: a -> Builder
instance ToTextBuilder Int where
toTextBuilder = decimal
instance ToTextBuilder Integer where
toTextBuilder = decimal
instance ToTextBuilder Float where
toTextBuilder = realFloat
instance ToTextBuilder Double where
toTextBuilder = realFloat
instance ToTextBuilder Char where
toTextBuilder = singleton
instance ToTextBuilder T.Text where
toTextBuilder = fromText
instance ToTextBuilder TL.Text where
toTextBuilder = fromLazyText
instance ToTextBuilder String where
toTextBuilder = fromString