-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Efficient strict text builder
--   
--   Text formatting library and efficient builder library.
@package text-builder
@version 0.6.7.2

module Text.Builder

-- | Specification of how to efficiently construct strict <a>Text</a>.
--   Provides instances of <a>Semigroup</a> and <a>Monoid</a>, which have
--   complexity of <i>O(1)</i>.
data Builder

-- | Execute a builder producing a strict text
run :: Builder -> Text

-- | Get the amount of characters
length :: Builder -> Int

-- | Check whether the builder is empty
null :: Builder -> Bool

-- | Put builder, to stdout
putToStdOut :: Builder -> IO ()

-- | Put builder, to stderr
putToStdErr :: Builder -> IO ()

-- | Put builder, followed by a line, to stdout
putLnToStdOut :: Builder -> IO ()

-- | Put builder, followed by a line, to stderr
putLnToStdErr :: Builder -> IO ()

-- | Intercalate builders
intercalate :: Foldable foldable => Builder -> foldable Builder -> Builder

-- | Pad a builder from the left side to the specified length with the
--   specified character
padFromLeft :: Int -> Char -> Builder -> Builder

-- | Pad a builder from the right side to the specified length with the
--   specified character
padFromRight :: Int -> Char -> Builder -> Builder

-- | Strict text
text :: Text -> Builder

-- | Lazy text
lazyText :: Text -> Builder

-- | String
string :: String -> Builder

-- | ASCII byte string
asciiByteString :: ByteString -> Builder

-- | Hexadecimal readable representation of binary data.
hexData :: ByteString -> Builder

-- | Unicode character
char :: Char -> Builder

-- | Unicode code point
unicodeCodePoint :: Int -> Builder

-- | Single code-unit UTF-16 character
utf16CodeUnits1 :: Word16 -> Builder

-- | Double code-unit UTF-16 character
utf16CodeUnits2 :: Word16 -> Word16 -> Builder

-- | Single code-unit UTF-8 character
utf8CodeUnits1 :: Word8 -> Builder

-- | Double code-unit UTF-8 character
utf8CodeUnits2 :: Word8 -> Word8 -> Builder

-- | Triple code-unit UTF-8 character
utf8CodeUnits3 :: Word8 -> Word8 -> Word8 -> Builder

-- | UTF-8 character out of 4 code units
utf8CodeUnits4 :: Word8 -> Word8 -> Word8 -> Word8 -> Builder

-- | Decimal representation of an integral value
decimal :: Integral a => a -> Builder

-- | Decimal representation of an unsigned integral value
unsignedDecimal :: Integral a => a -> Builder

-- | Decimal representation of an integral value with thousands separated
--   by the specified character
thousandSeparatedDecimal :: Integral a => Char -> a -> Builder

-- | Decimal representation of an unsigned integral value with thousands
--   separated by the specified character
thousandSeparatedUnsignedDecimal :: Integral a => Char -> a -> Builder

-- | Data size in decimal notation over amount of bytes.
dataSizeInBytesInDecimal :: Integral a => Char -> a -> Builder

-- | Unsigned binary number
unsignedBinary :: Integral a => a -> Builder

-- | Unsigned binary number
unsignedPaddedBinary :: (Integral a, FiniteBits a) => a -> Builder

-- | Hexadecimal representation of an integral value
hexadecimal :: Integral a => a -> Builder

-- | Unsigned hexadecimal representation of an integral value
unsignedHexadecimal :: Integral a => a -> Builder

-- | Decimal digit
decimalDigit :: Integral a => a -> Builder

-- | Hexadecimal digit
hexadecimalDigit :: Integral a => a -> Builder

-- | Double with a fixed number of decimal places.
fixedDouble :: Int -> Double -> Builder

-- | Double multiplied by 100 with a fixed number of decimal places applied
--   and followed by a percent-sign.
doublePercent :: Int -> Double -> Builder

-- | Time interval in seconds. Directly applicable to <tt>DiffTime</tt> and
--   <tt>NominalDiffTime</tt>.
intervalInSeconds :: RealFrac seconds => seconds -> Builder
instance GHC.Base.Monoid Text.Builder.Builder
instance GHC.Base.Semigroup Text.Builder.Builder
instance Data.String.IsString Text.Builder.Builder
instance GHC.Show.Show Text.Builder.Builder
