/usr/share/doc/libghc-blaze-builder-doc/html/Blaze-ByteString-Builder-Internal-Write.html is in libghc-blaze-builder-doc 0.4.0.1-3build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Blaze.ByteString.Builder.Internal.Write</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Blaze-ByteString-Builder-Internal-Write.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Blaze-ByteString-Builder-Internal-Write.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">blaze-builder-0.4.0.1: Efficient buffered output.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Copyright</th><td>(c) 2010 Simon Meier
(c) 2010 Jasper van der Jeugt</td></tr><tr><th>License</th><td>BSD3-style (see LICENSE)</td></tr><tr><th>Maintainer</th><td>Leon Smith <leon@melding-monads.com></td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Portability</th><td>tested on GHC only</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Blaze.ByteString.Builder.Internal.Write</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Poking a buffer</a></li><li><a href="#g:2">Writing to abuffer</a></li><li><a href="#g:3">Constructing builders from writes</a></li><li><a href="#g:4">Writing <code>Storable</code>s</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A general and efficient write type that allows for the easy construction of
builders for (smallish) bounded size writes to a buffer.</p><p>FIXME: Improve documentation.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">newtype</span> <a href="#t:Poke">Poke</a> = <a href="#v:Poke">Poke</a> {<ul class="subs"><li><a href="#v:runPoke">runPoke</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a>)</li></ul>}</li><li class="src short"><a href="#v:pokeN">pokeN</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()) -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Write">Write</a> = <a href="#v:Write">Write</a> !<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></li><li class="src short"><a href="#v:runWrite">runWrite</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a>)</li><li class="src short"><a href="#v:getBound">getBound</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:getBound-39-">getBound'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-String.html#t:String">String</a> -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:getPoke">getPoke</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></li><li class="src short"><a href="#v:exactWrite">exactWrite</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()) -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:boundedWrite">boundedWrite</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a> -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeLiftIO">writeLiftIO</a> :: (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeIf">writeIf</a> :: (a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeEq">writeEq</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> a => a -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeOrdering">writeOrdering</a> :: (a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ordering">Ordering</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:writeOrd">writeOrd</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> a => a -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:fromWrite">fromWrite</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li><li class="src short"><a href="#v:fromWriteSingleton">fromWriteSingleton</a> :: (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li><li class="src short"><a href="#v:fromWriteList">fromWriteList</a> :: (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> [a] -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li><li class="src short"><a href="#v:writeStorable">writeStorable</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a => a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></li><li class="src short"><a href="#v:fromStorable">fromStorable</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a => a -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li><li class="src short"><a href="#v:fromStorables">fromStorables</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a => [a] -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></li></ul></div><div id="interface"><h1 id="g:1">Poking a buffer</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:Poke" class="def">Poke</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#Poke" class="link">Source</a></p><div class="doc"><p>Changing a sequence of bytes starting from the given pointer. <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></code>s are
the most primitive buffer manipulation. In most cases, you don't use the
explicitely but as part of a <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code>, which also tells how many bytes will
be changed at most.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Poke" class="def">Poke</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:runPoke" class="def">runPoke</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a>)</dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Poke" class="caption collapser" onclick="toggleSection('i:Poke')">Instances</p><div id="section.i:Poke" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></span> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#line-120" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:pokeN" class="def">pokeN</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()) -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#pokeN" class="link">Source</a></p><div class="doc"><p><code>pokeN size io</code> creates a write that denotes the writing of <code>size</code> bytes
to a buffer using the IO action <code>io</code>. Note that <code>io</code> MUST write EXACTLY <code>size</code>
bytes to the buffer!</p></div></div><h1 id="g:2">Writing to abuffer</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Write" class="def">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#Write" class="link">Source</a></p><div class="doc"><p>A write of a bounded number of bytes.</p><p>When defining a function <code>write :: a -> Write</code> for some <code>a</code>, then it is
important to ensure that the bound on the number of bytes written is
data-independent. Formally,</p><pre> forall x y. getBound (write x) = getBound (write y)</pre><p>The idea is that this data-independent bound is specified such that the
compiler can optimize the check, if there are enough free bytes in the buffer,
to a single subtraction between the pointer to the next free byte and the
pointer to the end of the buffer with this constant bound of the maximal
number of bytes to be written.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Write" class="def">Write</a> !<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Write" class="caption collapser" onclick="toggleSection('i:Write')">Instances</p><div id="section.i:Write" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Monoid.html#t:Monoid">Monoid</a> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></span> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#line-130" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:runWrite" class="def">runWrite</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a>) <a href="src/Blaze-ByteString-Builder-Internal-Write.html#runWrite" class="link">Source</a></p><div class="doc"><p>Run the <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></code> action of a write.</p></div></div><div class="top"><p class="src"><a name="v:getBound" class="def">getBound</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#getBound" class="link">Source</a></p><div class="doc"><p>Extract the maximal number of bytes that this write could write.</p></div></div><div class="top"><p class="src"><a name="v:getBound-39-" class="def">getBound'</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#getBound%27" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Name of caller: for debugging purposes.</p></td></tr><tr><td class="src">-> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>)</td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Extract the maximal number of bytes that this write could write in any
case. Assumes that the bound of the write is data-independent.</p></div></div><div class="top"><p class="src"><a name="v:getPoke" class="def">getPoke</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#getPoke" class="link">Source</a></p><div class="doc"><p>Extract the <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></code> action of a write.</p></div></div><div class="top"><p class="src"><a name="v:exactWrite" class="def">exactWrite</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Word.html#t:Word8">Word8</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> ()) -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#exactWrite" class="link">Source</a></p><div class="doc"><p><code>exactWrite size io</code> creates a bounded write that can later be converted to
a builder that writes exactly <code>size</code> bytes. Note that <code>io</code> MUST write
EXACTLY <code>size</code> bytes to the buffer!</p></div></div><div class="top"><p class="src"><a name="v:boundedWrite" class="def">boundedWrite</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a> -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#boundedWrite" class="link">Source</a></p><div class="doc"><p><code>boundedWrite size write</code> creates a bounded write from a <code>write</code> that does
not write more than <code>size</code> bytes.</p></div></div><div class="top"><p class="src"><a name="v:writeLiftIO" class="def">writeLiftIO</a> :: (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/System-IO.html#t:IO">IO</a> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeLiftIO" class="link">Source</a></p><div class="doc"><p><code>writeLiftIO io write</code> creates a write executes the <code>io</code> action to compute
the value that is then written.</p></div></div><div class="top"><p class="src"><a name="v:writeIf" class="def">writeIf</a> :: (a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Bool.html#t:Bool">Bool</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeIf" class="link">Source</a></p><div class="doc"><p><code>writeIf p wTrue wFalse x</code> creates a <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code> with a <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Poke">Poke</a></code> equal to <code>wTrue
x</code>, if <code>p x</code> and equal to <code>wFalse x</code> otherwise. The bound of this new
<code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code> is the maximum of the bounds for either <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code>. This yields a data
independent bound, if the bound for <code>wTrue</code> and <code>wFalse</code> is already data
independent.</p></div></div><div class="top"><p class="src"><a name="v:writeEq" class="def">writeEq</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> a => a -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeEq" class="link">Source</a></p><div class="doc"><p>Compare the value to a test value and use the first write action for the
equal case and the second write action for the non-equal case.</p></div></div><div class="top"><p class="src"><a name="v:writeOrdering" class="def">writeOrdering</a> :: (a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ordering">Ordering</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeOrdering" class="link">Source</a></p><div class="doc"><p>TODO: Test this. It might well be too difficult to use.
FIXME: Better name required!</p></div></div><div class="top"><p class="src"><a name="v:writeOrd" class="def">writeOrd</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> a => a -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeOrd" class="link">Source</a></p><div class="doc"><p>A write combinator useful to build decision trees for deciding what value
to write with a constant bound on the maximal number of bytes written.</p></div></div><h1 id="g:3">Constructing builders from writes</h1><div class="top"><p class="src"><a name="v:fromWrite" class="def">fromWrite</a> :: <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromWrite" class="link">Source</a></p><div class="doc"><p>Create a builder that execute a single <code><a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a></code>.</p></div></div><div class="top"><p class="src"><a name="v:fromWriteSingleton" class="def">fromWriteSingleton</a> :: (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> a -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromWriteSingleton" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:fromWriteList" class="def">fromWriteList</a> :: (a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a>) -> [a] -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromWriteList" class="link">Source</a></p><div class="doc"><p>Construct a <code><a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a></code> writing a list of data one element at a time.</p></div></div><h1 id="g:4">Writing <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a></code>s</h1><div class="top"><p class="src"><a name="v:writeStorable" class="def">writeStorable</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a => a -> <a href="Blaze-ByteString-Builder-Internal-Write.html#t:Write">Write</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#writeStorable" class="link">Source</a></p><div class="doc"><p>Write a storable value.</p></div></div><div class="top"><p class="src"><a name="v:fromStorable" class="def">fromStorable</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a => a -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromStorable" class="link">Source</a></p><div class="doc"><p>A builder that serializes a storable value. No alignment is done.</p></div></div><div class="top"><p class="src"><a name="v:fromStorables" class="def">fromStorables</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Foreign-Storable.html#t:Storable">Storable</a> a => [a] -> <a href="Blaze-ByteString-Builder.html#t:Builder">Builder</a> <a href="src/Blaze-ByteString-Builder-Internal-Write.html#fromStorables" class="link">Source</a></p><div class="doc"><p>A builder that serializes a list of storable values by writing them
consecutively. No alignment is done. Parsing information needs to be
provided externally.</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>
|