Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- writeToByteString :: Write -> ByteString
- data Write = Write {}
- concat :: Foldable f => f Write -> Write
- word8 :: Word8 -> Write
- lWord16 :: Word16 -> Write
- bWord16 :: Word16 -> Write
- lWord32 :: Word32 -> Write
- bWord32 :: Word32 -> Write
- lWord64 :: Word64 -> Write
- bWord64 :: Word64 -> Write
- lInt16 :: Int16 -> Write
- bInt16 :: Int16 -> Write
- lInt32 :: Int32 -> Write
- bInt32 :: Int32 -> Write
- lInt64 :: Int64 -> Write
- bInt64 :: Int64 -> Write
- word64AsciiDec :: Word64 -> Write
- wordAsciiDec :: Word -> Write
- int64AsciiDec :: Int64 -> Write
- intAsciiDec :: Int -> Write
- doubleAsciiDec :: Double -> Write
- zeroNonRealDoubleAsciiDec :: Double -> Write
- scientificAsciiDec :: Scientific -> Write
- byteString :: ByteString -> Write
- textUtf8 :: Text -> Write
Documentation
writeToByteString :: Write -> ByteString Source #
Execute Write, producing strict ByteString.
Specification of how many bytes to allocate and how to populate them.
Useful for creating strict bytestrings and tasks like that.
word64AsciiDec :: Word64 -> Write Source #
Render Word64 in ASCII decimal.
wordAsciiDec :: Word -> Write Source #
Render Word in ASCII decimal.
int64AsciiDec :: Int64 -> Write Source #
Render Int64 in ASCII decimal.
intAsciiDec :: Int -> Write Source #
Render Int in ASCII decimal.
doubleAsciiDec :: Double -> Write Source #
Render double interpreting non-real values,
such as NaN
, Infinity
, -Infinity
,
as is.
zeroNonRealDoubleAsciiDec :: Double -> Write Source #
Render double interpreting non real values,
such as NaN
, Infinity
, -Infinity
,
as zero.
scientificAsciiDec :: Scientific -> Write Source #
Render Scientific in ASCII decimal.
byteString :: ByteString -> Write Source #
Efficiently copy the contents of ByteString using memcpy
.
textUtf8 :: Text -> Write Source #
Render Text in UTF8.
Does pretty much the same as encodeUtf8
,
both implementation and performance-wise,
while allowing you to avoid redundant memcpy
compared to (
.byteString
. encodeUtf8
)
Following are the benchmark results comparing the performance of
(
with
writeToByteString
. textUtf8
)Data.Text.Encoding.
on inputs in Latin and Greek (requiring different number of surrogate bytes).
The results show that they are quite similar.encodeUtf8
Benchmark results
textUtf8/ptr-poker/latin/1 25.61 ns textUtf8/ptr-poker/latin/10 31.59 ns textUtf8/ptr-poker/latin/100 121.5 ns textUtf8/ptr-poker/greek/1 28.54 ns textUtf8/ptr-poker/greek/10 41.97 ns textUtf8/ptr-poker/greek/100 250.3 ns textUtf8/text/latin/1 22.84 ns textUtf8/text/latin/10 31.10 ns textUtf8/text/latin/100 118.2 ns textUtf8/text/greek/1 25.80 ns textUtf8/text/greek/10 40.80 ns textUtf8/text/greek/100 293.1 ns