ptr-poker-0.1.1.1: Pointer poking action construction and composition toolkit

Safe HaskellNone
LanguageHaskell2010

PtrPoker.Write

Synopsis

Documentation

data Write Source #

Specification of how much bytes to allocate and how to populate them.

Useful for creating strict bytestrings and tasks like that.

Constructors

Write 

Fields

Instances
IsString Write Source # 
Instance details

Defined in PtrPoker.Write

Methods

fromString :: String -> Write #

Semigroup Write Source # 
Instance details

Defined in PtrPoker.Write

Methods

(<>) :: Write -> Write -> Write #

sconcat :: NonEmpty Write -> Write #

stimes :: Integral b => b -> Write -> Write #

Monoid Write Source # 
Instance details

Defined in PtrPoker.Write

Methods

mempty :: Write #

mappend :: Write -> Write -> Write #

mconcat :: [Write] -> Write #

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.

textUtf8 :: Text -> Write Source #

Benchmark results in comparison to Data.Text.Encoding.decodeUtf8.

textUtf8/ptr-poker/latin/1               mean 57.06 ns  ( +- 3.283 ns  )
textUtf8/ptr-poker/latin/10              mean 214.1 ns  ( +- 8.601 ns  )
textUtf8/ptr-poker/latin/100             mean 1.536 μs  ( +- 75.03 ns  )
textUtf8/ptr-poker/greek/1               mean 85.98 ns  ( +- 5.038 ns  )
textUtf8/ptr-poker/greek/10              mean 482.1 ns  ( +- 12.38 ns  )
textUtf8/ptr-poker/greek/100             mean 4.398 μs  ( +- 33.94 ns  )
textUtf8/text/latin/1                    mean 60.28 ns  ( +- 3.517 ns  )
textUtf8/text/latin/10                   mean 201.6 ns  ( +- 8.118 ns  )
textUtf8/text/latin/100                  mean 1.323 μs  ( +- 51.25 ns  )
textUtf8/text/greek/1                    mean 99.14 ns  ( +- 1.264 ns  )
textUtf8/text/greek/10                   mean 483.4 ns  ( +- 5.844 ns  )
textUtf8/text/greek/100                  mean 4.238 μs  ( +- 40.55 ns  )