module Graphics.Implicit.Export.TextBuilderUtils (
module DTL,
module DTLB,
toLazyText,
bf,
buildTruncFloat,
buildℕ,
buildInt
) where
import Prelude (Maybe(Nothing, Just), Int, ($))
import Graphics.Implicit.Definitions (ℝ, ℕ, fromℝtoFloat)
import Data.Text.Lazy as DTL (Text, pack)
import Data.Text.Internal.Lazy (defaultChunkSize)
import Data.Text.Lazy.Builder as DTLB (Builder, toLazyTextWith, fromLazyText)
import Data.Text.Lazy.Builder.RealFloat (formatRealFloat, FPFormat(Exponent, Fixed))
import Data.Text.Lazy.Builder.Int (decimal)
toLazyText :: Builder -> Text
toLazyText :: Builder -> Text
toLazyText = Int -> Builder -> Text
toLazyTextWith Int
defaultChunkSize
bf :: ℝ -> Builder
bf :: ℝ -> Builder
bf ℝ
value = FPFormat -> Maybe Int -> Float -> Builder
forall a. RealFloat a => FPFormat -> Maybe Int -> a -> Builder
formatRealFloat FPFormat
Exponent Maybe Int
forall a. Maybe a
Nothing (Float -> Builder) -> Float -> Builder
forall a b. (a -> b) -> a -> b
$ ℝ -> Float
fromℝtoFloat ℝ
value
buildTruncFloat :: ℝ -> Builder
buildTruncFloat :: ℝ -> Builder
buildTruncFloat = FPFormat -> Maybe Int -> ℝ -> Builder
forall a. RealFloat a => FPFormat -> Maybe Int -> a -> Builder
formatRealFloat FPFormat
Fixed (Maybe Int -> ℝ -> Builder) -> Maybe Int -> ℝ -> Builder
forall a b. (a -> b) -> a -> b
$ Int -> Maybe Int
forall a. a -> Maybe a
Just Int
4
buildℕ :: ℕ -> Builder
buildℕ :: ℕ -> Builder
buildℕ = ℕ -> Builder
forall a. Integral a => a -> Builder
decimal
buildInt :: Int -> Builder
buildInt :: Int -> Builder
buildInt = Int -> Builder
forall a. Integral a => a -> Builder
decimal