Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 2543

ghc-7.4.2-4.mga5.i586.rpm

<!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>Data.Binary.Get</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_Data-Binary-Get.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">binary-0.5.1.0: Binary serialisation for Haskell values using lazy ByteStrings</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable to Hugs and GHC.</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Lennart Kolmodin &lt;kolmodin@dtek.chalmers.se&gt;</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Data.Binary.Get</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The Get type
</a></li><li><a href="#g:2">Parsing
</a></li><li><a href="#g:3">Utility
</a></li><li><a href="#g:4">Parsing particular types
</a><ul><li><a href="#g:5">ByteStrings
</a></li><li><a href="#g:6">Big-endian reads
</a></li><li><a href="#g:7">Little-endian reads
</a></li><li><a href="#g:8">Host-endian, unaligned reads
</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The Get monad. A monad for efficiently building structures from
 encoded lazy ByteStrings
</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">data</span>  <a href="#t:Get">Get</a> a</li><li class="src short"><a href="#v:runGet">runGet</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> a -&gt; <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; a</li><li class="src short"><a href="#v:runGetState">runGetState</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> a -&gt; <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> -&gt; (a, <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a>)</li><li class="src short"><a href="#v:skip">skip</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> ()</li><li class="src short"><a href="#v:uncheckedSkip">uncheckedSkip</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> ()</li><li class="src short"><a href="#v:lookAhead">lookAhead</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> a -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> a</li><li class="src short"><a href="#v:lookAheadM">lookAheadM</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:lookAheadE">lookAheadE</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> (<a href="../base-4.5.1.0/Data-Either.html#t:Either">Either</a> a b) -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> (<a href="../base-4.5.1.0/Data-Either.html#t:Either">Either</a> a b)</li><li class="src short"><a href="#v:uncheckedLookAhead">uncheckedLookAhead</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:bytesRead">bytesRead</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a></li><li class="src short"><a href="#v:getBytes">getBytes</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:remaining">remaining</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a></li><li class="src short"><a href="#v:isEmpty">isEmpty</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:getWord8">getWord8</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a></li><li class="src short"><a href="#v:getByteString">getByteString</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:getLazyByteString">getLazyByteString</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:getLazyByteStringNul">getLazyByteStringNul</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:getRemainingLazyByteString">getRemainingLazyByteString</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:getWord16be">getWord16be</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word16">Word16</a></li><li class="src short"><a href="#v:getWord32be">getWord32be</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word32">Word32</a></li><li class="src short"><a href="#v:getWord64be">getWord64be</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word64">Word64</a></li><li class="src short"><a href="#v:getWord16le">getWord16le</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word16">Word16</a></li><li class="src short"><a href="#v:getWord32le">getWord32le</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word32">Word32</a></li><li class="src short"><a href="#v:getWord64le">getWord64le</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word64">Word64</a></li><li class="src short"><a href="#v:getWordhost">getWordhost</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word">Word</a></li><li class="src short"><a href="#v:getWord16host">getWord16host</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word16">Word16</a></li><li class="src short"><a href="#v:getWord32host">getWord32host</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word32">Word32</a></li><li class="src short"><a href="#v:getWord64host">getWord64host</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word64">Word64</a></li></ul></div><div id="interface"><h1 id="g:1">The Get type
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Get" class="def">Get</a> a </p><div class="doc"><p>The Get monad is just a State monad carrying around the input ByteString
 We treat it as a strict state monad. 
</p></div><div class="subs instances"><p id="control.i:Get" class="caption collapser" onclick="toggleSection('i:Get')">Instances</p><div id="section.i:Get" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> <a href="Data-Binary-Get.html#t:Get">Get</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Control-Monad.html#t:Functor">Functor</a> <a href="Data-Binary-Get.html#t:Get">Get</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> <a href="Data-Binary-Get.html#t:Get">Get</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Data-Binary-Get.html#t:Get">Get</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:runGet" class="def">runGet</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> a -&gt; <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; a</p><div class="doc"><p>Run the Get monad applies a <code>get</code>-based parser on the input ByteString
</p></div></div><div class="top"><p class="src"><a name="v:runGetState" class="def">runGetState</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> a -&gt; <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> -&gt; (a, <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a>)</p><div class="doc"><p>Run the Get monad applies a <code>get</code>-based parser on the input
 ByteString. Additional to the result of get it returns the number of
 consumed bytes and the rest of the input.
</p></div></div><h1 id="g:2">Parsing
</h1><div class="top"><p class="src"><a name="v:skip" class="def">skip</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> ()</p><div class="doc"><p>Skip ahead <code>n</code> bytes. Fails if fewer than <code>n</code> bytes are available.
</p></div></div><div class="top"><p class="src"><a name="v:uncheckedSkip" class="def">uncheckedSkip</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> ()</p><div class="doc"><p>Skip ahead <code>n</code> bytes. No error if there isn't enough bytes.
</p></div></div><div class="top"><p class="src"><a name="v:lookAhead" class="def">lookAhead</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> a -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> a</p><div class="doc"><p>Run <code>ga</code>, but return without consuming its input.
 Fails if <code>ga</code> fails.
</p></div></div><div class="top"><p class="src"><a name="v:lookAheadM" class="def">lookAheadM</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</p><div class="doc"><p>Like <code><a href="Data-Binary-Get.html#v:lookAhead">lookAhead</a></code>, but consume the input if <code>gma</code> returns 'Just _'.
 Fails if <code>gma</code> fails.
</p></div></div><div class="top"><p class="src"><a name="v:lookAheadE" class="def">lookAheadE</a> ::  <a href="Data-Binary-Get.html#t:Get">Get</a> (<a href="../base-4.5.1.0/Data-Either.html#t:Either">Either</a> a b) -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> (<a href="../base-4.5.1.0/Data-Either.html#t:Either">Either</a> a b)</p><div class="doc"><p>Like <code><a href="Data-Binary-Get.html#v:lookAhead">lookAhead</a></code>, but consume the input if <code>gea</code> returns 'Right _'.
 Fails if <code>gea</code> fails.
</p></div></div><div class="top"><p class="src"><a name="v:uncheckedLookAhead" class="def">uncheckedLookAhead</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></p><div class="doc"><p>Get the next up to <code>n</code> bytes as a lazy ByteString, without consuming them. 
</p></div></div><h1 id="g:3">Utility
</h1><div class="top"><p class="src"><a name="v:bytesRead" class="def">bytesRead</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a></p><div class="doc"><p>Get the total number of bytes read to this point.
</p></div></div><div class="top"><p class="src"><a name="v:getBytes" class="def">getBytes</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></p><div class="doc"><p>important
</p><p>Pull <code>n</code> bytes from the input, as a strict ByteString.
</p></div></div><div class="top"><p class="src"><a name="v:remaining" class="def">remaining</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a></p><div class="doc"><p>Get the number of remaining unparsed bytes.
 Useful for checking whether all input has been consumed.
 Note that this forces the rest of the input.
</p></div></div><div class="top"><p class="src"><a name="v:isEmpty" class="def">isEmpty</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p><div class="doc"><p>Test whether all input has been consumed,
 i.e. there are no remaining unparsed bytes.
</p></div></div><h1 id="g:4">Parsing particular types
</h1><div class="top"><p class="src"><a name="v:getWord8" class="def">getWord8</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word8">Word8</a></p><div class="doc"><p>Read a Word8 from the monad state
</p></div></div><h2 id="g:5">ByteStrings
</h2><div class="top"><p class="src"><a name="v:getByteString" class="def">getByteString</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a></p><div class="doc"><p>An efficient <code>get</code> method for strict ByteStrings. Fails if fewer
 than <code>n</code> bytes are left in the input.
</p></div></div><div class="top"><p class="src"><a name="v:getLazyByteString" class="def">getLazyByteString</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int64">Int64</a> -&gt; <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></p><div class="doc"><p>An efficient <code>get</code> method for lazy ByteStrings. Does not fail if fewer than
 <code>n</code> bytes are left in the input.
</p></div></div><div class="top"><p class="src"><a name="v:getLazyByteStringNul" class="def">getLazyByteStringNul</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></p><div class="doc"><p>Get a lazy ByteString that is terminated with a NUL byte. Fails
 if it reaches the end of input without hitting a NUL.
</p></div></div><div class="top"><p class="src"><a name="v:getRemainingLazyByteString" class="def">getRemainingLazyByteString</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../bytestring-0.9.2.1/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></p><div class="doc"><p>Get the remaining bytes as a lazy ByteString
</p></div></div><h2 id="g:6">Big-endian reads
</h2><div class="top"><p class="src"><a name="v:getWord16be" class="def">getWord16be</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word16">Word16</a></p><div class="doc"><p>Read a Word16 in big endian format
</p></div></div><div class="top"><p class="src"><a name="v:getWord32be" class="def">getWord32be</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word32">Word32</a></p><div class="doc"><p>Read a Word32 in big endian format
</p></div></div><div class="top"><p class="src"><a name="v:getWord64be" class="def">getWord64be</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word64">Word64</a></p><div class="doc"><p>Read a Word64 in big endian format
</p></div></div><h2 id="g:7">Little-endian reads
</h2><div class="top"><p class="src"><a name="v:getWord16le" class="def">getWord16le</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word16">Word16</a></p><div class="doc"><p>Read a Word16 in little endian format
</p></div></div><div class="top"><p class="src"><a name="v:getWord32le" class="def">getWord32le</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word32">Word32</a></p><div class="doc"><p>Read a Word32 in little endian format
</p></div></div><div class="top"><p class="src"><a name="v:getWord64le" class="def">getWord64le</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word64">Word64</a></p><div class="doc"><p>Read a Word64 in little endian format
</p></div></div><h2 id="g:8">Host-endian, unaligned reads
</h2><div class="top"><p class="src"><a name="v:getWordhost" class="def">getWordhost</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word">Word</a></p><div class="doc"><p><em>O(1).</em> Read a single native machine word. The word is read in
 host order, host endian form, for the machine you're on. On a 64 bit
 machine the Word is an 8 byte value, on a 32 bit machine, 4 bytes.
</p></div></div><div class="top"><p class="src"><a name="v:getWord16host" class="def">getWord16host</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word16">Word16</a></p><div class="doc"><p><em>O(1).</em> Read a 2 byte Word16 in native host order and host endianness.
</p></div></div><div class="top"><p class="src"><a name="v:getWord32host" class="def">getWord32host</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word32">Word32</a></p><div class="doc"><p><em>O(1).</em> Read a Word32 in native host order and host endianness.
</p></div></div><div class="top"><p class="src"><a name="v:getWord64host" class="def">getWord64host</a> :: <a href="Data-Binary-Get.html#t:Get">Get</a> <a href="../base-4.5.1.0/Data-Word.html#t:Word64">Word64</a></p><div class="doc"><p><em>O(1).</em> Read a Word64 in native host order and host endianess.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>