-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Edge of developments for "text-builder" -- -- This is a development version of "text-builder". All experimentation -- and feature development happens here. The API can change drastically. -- For a more stable API use "text-builder", which is now just a wrapper -- over this package. @package text-builder-dev @version 0.3.3 module TextBuilderDev -- | Specification of how to efficiently construct strict Text. -- Provides instances of Semigroup and Monoid, which have -- complexity of O(1). data TextBuilder -- | Execute a builder producing a strict text buildText :: TextBuilder -> Text -- | Get the amount of characters length :: TextBuilder -> Int -- | Check whether the builder is empty null :: TextBuilder -> Bool -- | Put builder, to stdout putToStdOut :: TextBuilder -> IO () -- | Put builder, to stderr putToStdErr :: TextBuilder -> IO () -- | Put builder, followed by a line, to stdout putLnToStdOut :: TextBuilder -> IO () -- | Put builder, followed by a line, to stderr putLnToStdErr :: TextBuilder -> IO () -- | Run the builder and pack the produced text into a new builder. -- -- Useful to have around builders that you reuse, because a forced -- builder is much faster, since it's virtually a single call -- memcopy. force :: TextBuilder -> TextBuilder -- | Intercalate builders intercalate :: Foldable f => TextBuilder -> f TextBuilder -> TextBuilder -- | Intercalate projecting values to builder intercalateMap :: Foldable f => TextBuilder -> (a -> TextBuilder) -> f a -> TextBuilder -- | Pad a builder from the left side to the specified length with the -- specified character padFromLeft :: Int -> Char -> TextBuilder -> TextBuilder -- | Pad a builder from the right side to the specified length with the -- specified character padFromRight :: Int -> Char -> TextBuilder -> TextBuilder -- | Strict text text :: Text -> TextBuilder -- | Lazy text lazyText :: Text -> TextBuilder -- | String string :: String -> TextBuilder -- | ASCII byte string asciiByteString :: ByteString -> TextBuilder -- | Hexadecimal readable representation of binary data. hexData :: ByteString -> TextBuilder -- | Unicode character char :: Char -> TextBuilder -- | Unicode code point unicodeCodePoint :: Int -> TextBuilder -- | Single code-unit UTF-16 character utf16CodeUnits1 :: Word16 -> TextBuilder -- | Double code-unit UTF-16 character utf16CodeUnits2 :: Word16 -> Word16 -> TextBuilder -- | Single code-unit UTF-8 character utf8CodeUnits1 :: Word8 -> TextBuilder -- | Double code-unit UTF-8 character utf8CodeUnits2 :: Word8 -> Word8 -> TextBuilder -- | Triple code-unit UTF-8 character utf8CodeUnits3 :: Word8 -> Word8 -> Word8 -> TextBuilder -- | UTF-8 character out of 4 code units utf8CodeUnits4 :: Word8 -> Word8 -> Word8 -> Word8 -> TextBuilder -- | Decimal representation of an integral value decimal :: Integral a => a -> TextBuilder -- | Decimal representation of an unsigned integral value unsignedDecimal :: Integral a => a -> TextBuilder -- | Decimal representation of an integral value with thousands separated -- by the specified character thousandSeparatedDecimal :: Integral a => Char -> a -> TextBuilder -- | Decimal representation of an unsigned integral value with thousands -- separated by the specified character thousandSeparatedUnsignedDecimal :: Integral a => Char -> a -> TextBuilder -- | Data size in decimal notation over amount of bytes. dataSizeInBytesInDecimal :: Integral a => Char -> a -> TextBuilder -- | Unsigned binary number unsignedBinary :: Integral a => a -> TextBuilder -- | Unsigned binary number unsignedPaddedBinary :: (Integral a, FiniteBits a) => a -> TextBuilder -- | Hexadecimal representation of an integral value hexadecimal :: Integral a => a -> TextBuilder -- | Unsigned hexadecimal representation of an integral value unsignedHexadecimal :: Integral a => a -> TextBuilder -- | Decimal digit decimalDigit :: Integral a => a -> TextBuilder -- | Hexadecimal digit hexadecimalDigit :: Integral a => a -> TextBuilder -- | Double with a fixed number of decimal places. fixedDouble :: Int -> Double -> TextBuilder -- | Double multiplied by 100 with a fixed number of decimal places applied -- and followed by a percent-sign. doublePercent :: Int -> Double -> TextBuilder -- | General template for formatting date values according to the ISO8601 -- standard. The format is the following: -- --
--   2021-11-24T12:11:02Z
--   
-- -- Integrations with various time-libraries can be easily derived from -- that. utcTimestampInIso8601 :: Int -> Int -> Int -> Int -> Int -> Int -> TextBuilder -- | Time interval in seconds. Directly applicable to DiffTime and -- NominalDiffTime. intervalInSeconds :: RealFrac seconds => seconds -> TextBuilder -- | Evidence that there exists an unambiguous way to convert a type to and -- from TextBuilder. -- -- Unlike conversion classes from other libs this class is lawful. The -- law is: -- --
--   fromTextBuilder . toTextBuilder = id
--   
-- -- This class does not provide implicit rendering, such as from integer -- to its decimal representation. There are multiple ways of representing -- an integer as text (e.g., hexadecimal, binary). The non-ambiguity is -- further enforced by the presence of the inverse conversion. In the -- integer case there is no way to read it from a textual form without a -- possibility of failing (e.g., when the input string cannot be parsed -- as an integer). -- -- If you're looking for such conversion classes, this library is not a -- place for them, since there can be infinite amount of flavours of -- conversions. They are context-dependent and as such should be defined -- as part of the domain. class IsomorphicToTextBuilder a toTextBuilder :: IsomorphicToTextBuilder a => a -> TextBuilder fromTextBuilder :: IsomorphicToTextBuilder a => TextBuilder -> a instance TextBuilderDev.IsomorphicToTextBuilder TextBuilderDev.TextBuilder instance TextBuilderDev.IsomorphicToTextBuilder Data.Text.Internal.Text instance TextBuilderDev.IsomorphicToTextBuilder GHC.Base.String instance TextBuilderDev.IsomorphicToTextBuilder Data.Text.Internal.Lazy.Text instance TextBuilderDev.IsomorphicToTextBuilder Data.Text.Internal.Builder.Builder instance GHC.Base.Semigroup TextBuilderDev.TextBuilder instance GHC.Base.Monoid TextBuilderDev.TextBuilder instance Data.String.IsString TextBuilderDev.TextBuilder instance GHC.Show.Show TextBuilderDev.TextBuilder instance GHC.Classes.Eq TextBuilderDev.TextBuilder instance IsomorphismClass.IsomorphicTo TextBuilderDev.TextBuilder TextBuilderDev.TextBuilder instance IsomorphismClass.IsomorphicTo TextBuilderDev.TextBuilder GHC.Base.String instance IsomorphismClass.IsomorphicTo TextBuilderDev.TextBuilder Data.Text.Internal.Text instance IsomorphismClass.IsomorphicTo TextBuilderDev.TextBuilder Data.Text.Internal.Lazy.Text instance IsomorphismClass.IsomorphicTo TextBuilderDev.TextBuilder Data.Text.Internal.Builder.Builder instance IsomorphismClass.IsomorphicTo GHC.Base.String TextBuilderDev.TextBuilder instance IsomorphismClass.IsomorphicTo Data.Text.Internal.Text TextBuilderDev.TextBuilder instance IsomorphismClass.IsomorphicTo Data.Text.Internal.Lazy.Text TextBuilderDev.TextBuilder instance IsomorphismClass.IsomorphicTo Data.Text.Internal.Builder.Builder TextBuilderDev.TextBuilder