Copyright | (c) 2022 Andrew Lelechenko |
---|---|
License | BSD3 |
Maintainer | Andrew Lelechenko <andrew.lelechenko@gmail.com> |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Data.Text.Builder.Linear
Description
Builder for strict Text
, based on linear types. It's consistently
outperforms Data.Text.Lazy.Builder
from text
as well as a strict builder from text-builder
,
and scales better.
Synopsis
Documentation
Thin wrapper over Buffer
with a handy Semigroup
instance.
>>>
:set -XOverloadedStrings -XMagicHash
>>>
fromText "foo" <> fromChar '_' <> fromAddr "bar"#
"foo_bar"
Remember: this is a strict builder, so on contrary to Data.Text.Lazy.Builder for optimal performance you should use strict left folds instead of lazy right ones.
Note that (similar to other builders) concatenation of Builder
s allocates
thunks. This is to a certain extent mitigated by aggressive inlining,
but it is faster to use Buffer
directly.
runBuilder ∷ ∀ m. Builder %m → Text Source #
fromDec ∷ (Integral a, FiniteBits a) ⇒ a → Builder Source #
Create Builder
, containing decimal representation of a given number.
>>>
fromChar 'x' <> fromDec (123 :: Int)
"x123"