double-extra-0.1.0.0: Data/Double/Extra/RawString.hs
module Data.Double.Extra.RawString where
import Data.Text.ToText
import Data.Text.ToTextBuilder
import Data.Double.Extra.Types
import Data.Double.Conversion.Text
import Data.Text.Lazy.Builder as B
import qualified Data.Text.Lazy as TL
instance KnownNat n => ToTextBuilder (DoubleFixed n) where
toTextBuilder x = B.fromText . toFixed (fromIntegral (natVal x)) $ coerce x
instance KnownNat n => ToTextBuilder (DoublePrecision n) where
toTextBuilder x = B.fromText . toPrecision (fromIntegral (natVal x)) $ coerce x
instance KnownNat n => ToTextBuilder (DoubleExponential n) where
toTextBuilder x = B.fromText . toExponential (fromIntegral (natVal x)) $ coerce x
instance ToTextBuilder DoubleShortest where
toTextBuilder = B.fromText . toShortest . coerce
instance KnownNat n => ToText (DoubleFixed n) where
toText x = toFixed (fromIntegral (natVal x)) $ coerce x
toLazyText = TL.fromStrict . toText
instance KnownNat n => ToText (DoublePrecision n) where
toText x = toPrecision (fromIntegral (natVal x)) $ coerce x
toLazyText = TL.fromStrict . toText
instance KnownNat n => ToText (DoubleExponential n) where
toText x = toExponential (fromIntegral (natVal x)) $ coerce x
toLazyText = TL.fromStrict . toText
instance ToText DoubleShortest where
toText = toShortest . coerce
toLazyText = TL.fromStrict . toText