/usr/share/doc/libghc-text-doc/html/src/Data-Text-Unsafe.html is in libghc-text-doc 1.2.2.1-3.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://code.haskell.org/~malcolm/hscolour/ -->
<title>Data/Text/Unsafe.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE CPP, MagicHash, UnboxedTuples #-}</span>
<a name="line-2"></a><span class='hs-comment'>-- |</span>
<a name="line-3"></a><span class='hs-comment'>-- Module : Data.Text.Unsafe</span>
<a name="line-4"></a><span class='hs-comment'>-- Copyright : (c) 2009, 2010, 2011 Bryan O'Sullivan</span>
<a name="line-5"></a><span class='hs-comment'>-- License : BSD-style</span>
<a name="line-6"></a><span class='hs-comment'>-- Maintainer : bos@serpentine.com</span>
<a name="line-7"></a><span class='hs-comment'>-- Stability : experimental</span>
<a name="line-8"></a><span class='hs-comment'>-- Portability : portable</span>
<a name="line-9"></a><span class='hs-comment'>--</span>
<a name="line-10"></a><span class='hs-comment'>-- A module containing unsafe 'Text' operations, for very very careful</span>
<a name="line-11"></a><span class='hs-comment'>-- use in heavily tested code.</span>
<a name="line-12"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Unsafe</span>
<a name="line-13"></a> <span class='hs-layout'>(</span>
<a name="line-14"></a> <span class='hs-varid'>inlineInterleaveST</span>
<a name="line-15"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>inlinePerformIO</span>
<a name="line-16"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>unsafeDupablePerformIO</span>
<a name="line-17"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>Iter</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
<a name="line-18"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>iter</span>
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>iter_</span>
<a name="line-20"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>reverseIter</span>
<a name="line-21"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>reverseIter_</span>
<a name="line-22"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>unsafeHead</span>
<a name="line-23"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>unsafeTail</span>
<a name="line-24"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>lengthWord16</span>
<a name="line-25"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>takeWord16</span>
<a name="line-26"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>dropWord16</span>
<a name="line-27"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-28"></a>
<a name="line-29"></a><span class='hs-cpp'>#if defined(ASSERTS)</span>
<a name="line-30"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Exception</span> <span class='hs-layout'>(</span><span class='hs-varid'>assert</span><span class='hs-layout'>)</span>
<a name="line-31"></a><span class='hs-cpp'>#endif</span>
<a name="line-32"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span><span class='hs-varop'>.</span><span class='hs-conid'>Encoding</span><span class='hs-varop'>.</span><span class='hs-conid'>Utf16</span> <span class='hs-layout'>(</span><span class='hs-varid'>chr2</span><span class='hs-layout'>)</span>
<a name="line-33"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-34"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span><span class='hs-varop'>.</span><span class='hs-conid'>Unsafe</span> <span class='hs-layout'>(</span><span class='hs-varid'>inlineInterleaveST</span><span class='hs-layout'>,</span> <span class='hs-varid'>inlinePerformIO</span><span class='hs-layout'>)</span>
<a name="line-35"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span><span class='hs-varop'>.</span><span class='hs-conid'>Unsafe</span><span class='hs-varop'>.</span><span class='hs-conid'>Char</span> <span class='hs-layout'>(</span><span class='hs-varid'>unsafeChr</span><span class='hs-layout'>)</span>
<a name="line-36"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Array</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>A</span>
<a name="line-37"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>GHC</span><span class='hs-varop'>.</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-varid'>unsafeDupablePerformIO</span><span class='hs-layout'>)</span>
<a name="line-38"></a>
<a name="line-39"></a><a name="unsafeHead"></a><span class='hs-comment'>-- | /O(1)/ A variant of 'head' for non-empty 'Text'. 'unsafeHead'</span>
<a name="line-40"></a><span class='hs-comment'>-- omits the check for the empty case, so there is an obligation on</span>
<a name="line-41"></a><span class='hs-comment'>-- the programmer to provide a proof that the 'Text' is non-empty.</span>
<a name="line-42"></a><span class='hs-definition'>unsafeHead</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Text</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Char</span>
<a name="line-43"></a><span class='hs-definition'>unsafeHead</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span> <span class='hs-sel'>_len</span><span class='hs-layout'>)</span>
<a name="line-44"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>m</span> <span class='hs-varop'><</span> <span class='hs-num'>0xD800</span> <span class='hs-varop'>||</span> <span class='hs-varid'>m</span> <span class='hs-varop'>></span> <span class='hs-num'>0xDBFF</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>unsafeChr</span> <span class='hs-varid'>m</span>
<a name="line-45"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>chr2</span> <span class='hs-varid'>m</span> <span class='hs-varid'>n</span>
<a name="line-46"></a> <span class='hs-keyword'>where</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>A</span><span class='hs-varop'>.</span><span class='hs-varid'>unsafeIndex</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span>
<a name="line-47"></a> <span class='hs-varid'>n</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>A</span><span class='hs-varop'>.</span><span class='hs-varid'>unsafeIndex</span> <span class='hs-varid'>arr</span> <span class='hs-layout'>(</span><span class='hs-varid'>off</span><span class='hs-varop'>+</span><span class='hs-num'>1</span><span class='hs-layout'>)</span>
<a name="line-48"></a><span class='hs-comment'>{-# INLINE unsafeHead #-}</span>
<a name="line-49"></a>
<a name="line-50"></a><a name="unsafeTail"></a><span class='hs-comment'>-- | /O(1)/ A variant of 'tail' for non-empty 'Text'. 'unsafeTail'</span>
<a name="line-51"></a><span class='hs-comment'>-- omits the check for the empty case, so there is an obligation on</span>
<a name="line-52"></a><span class='hs-comment'>-- the programmer to provide a proof that the 'Text' is non-empty.</span>
<a name="line-53"></a><span class='hs-definition'>unsafeTail</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Text</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Text</span>
<a name="line-54"></a><span class='hs-definition'>unsafeTail</span> <span class='hs-varid'>t</span><span class='hs-keyglyph'>@</span><span class='hs-layout'>(</span><span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span> <span class='hs-varid'>len</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
<a name="line-55"></a><span class='hs-cpp'>#if defined(ASSERTS)</span>
<a name="line-56"></a> <span class='hs-varid'>assert</span> <span class='hs-layout'>(</span><span class='hs-varid'>d</span> <span class='hs-varop'><=</span> <span class='hs-varid'>len</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span>
<a name="line-57"></a><span class='hs-cpp'>#endif</span>
<a name="line-58"></a> <span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-layout'>(</span><span class='hs-varid'>off</span><span class='hs-varop'>+</span><span class='hs-varid'>d</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>len</span><span class='hs-comment'>-</span><span class='hs-varid'>d</span><span class='hs-layout'>)</span>
<a name="line-59"></a> <span class='hs-keyword'>where</span> <span class='hs-varid'>d</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>iter_</span> <span class='hs-varid'>t</span> <span class='hs-num'>0</span>
<a name="line-60"></a><span class='hs-comment'>{-# INLINE unsafeTail #-}</span>
<a name="line-61"></a>
<a name="line-62"></a><a name="Iter"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>Iter</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Iter</span> <span class='hs-comment'>{-# UNPACK #-}</span> <span class='hs-varop'>!</span><span class='hs-conid'>Char</span> <span class='hs-comment'>{-# UNPACK #-}</span> <span class='hs-varop'>!</span><span class='hs-conid'>Int</span>
<a name="line-63"></a>
<a name="line-64"></a><a name="iter"></a><span class='hs-comment'>-- | /O(1)/ Iterate (unsafely) one step forwards through a UTF-16</span>
<a name="line-65"></a><span class='hs-comment'>-- array, returning the current character and the delta to add to give</span>
<a name="line-66"></a><span class='hs-comment'>-- the next offset to iterate at.</span>
<a name="line-67"></a><span class='hs-definition'>iter</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Text</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Iter</span>
<a name="line-68"></a><span class='hs-definition'>iter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span> <span class='hs-sel'>_len</span><span class='hs-layout'>)</span> <span class='hs-varid'>i</span>
<a name="line-69"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>m</span> <span class='hs-varop'><</span> <span class='hs-num'>0xD800</span> <span class='hs-varop'>||</span> <span class='hs-varid'>m</span> <span class='hs-varop'>></span> <span class='hs-num'>0xDBFF</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Iter</span> <span class='hs-layout'>(</span><span class='hs-varid'>unsafeChr</span> <span class='hs-varid'>m</span><span class='hs-layout'>)</span> <span class='hs-num'>1</span>
<a name="line-70"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Iter</span> <span class='hs-layout'>(</span><span class='hs-varid'>chr2</span> <span class='hs-varid'>m</span> <span class='hs-varid'>n</span><span class='hs-layout'>)</span> <span class='hs-num'>2</span>
<a name="line-71"></a> <span class='hs-keyword'>where</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>A</span><span class='hs-varop'>.</span><span class='hs-varid'>unsafeIndex</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>j</span>
<a name="line-72"></a> <span class='hs-varid'>n</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>A</span><span class='hs-varop'>.</span><span class='hs-varid'>unsafeIndex</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>k</span>
<a name="line-73"></a> <span class='hs-varid'>j</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>off</span> <span class='hs-varop'>+</span> <span class='hs-varid'>i</span>
<a name="line-74"></a> <span class='hs-varid'>k</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>j</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span>
<a name="line-75"></a><span class='hs-comment'>{-# INLINE iter #-}</span>
<a name="line-76"></a>
<a name="line-77"></a><a name="iter_"></a><span class='hs-comment'>-- | /O(1)/ Iterate one step through a UTF-16 array, returning the</span>
<a name="line-78"></a><span class='hs-comment'>-- delta to add to give the next offset to iterate at.</span>
<a name="line-79"></a><span class='hs-definition'>iter_</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Text</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Int</span>
<a name="line-80"></a><span class='hs-definition'>iter_</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span> <span class='hs-sel'>_len</span><span class='hs-layout'>)</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>m</span> <span class='hs-varop'><</span> <span class='hs-num'>0xD800</span> <span class='hs-varop'>||</span> <span class='hs-varid'>m</span> <span class='hs-varop'>></span> <span class='hs-num'>0xDBFF</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>1</span>
<a name="line-81"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>2</span>
<a name="line-82"></a> <span class='hs-keyword'>where</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>A</span><span class='hs-varop'>.</span><span class='hs-varid'>unsafeIndex</span> <span class='hs-varid'>arr</span> <span class='hs-layout'>(</span><span class='hs-varid'>off</span><span class='hs-varop'>+</span><span class='hs-varid'>i</span><span class='hs-layout'>)</span>
<a name="line-83"></a><span class='hs-comment'>{-# INLINE iter_ #-}</span>
<a name="line-84"></a>
<a name="line-85"></a><a name="reverseIter"></a><span class='hs-comment'>-- | /O(1)/ Iterate one step backwards through a UTF-16 array,</span>
<a name="line-86"></a><span class='hs-comment'>-- returning the current character and the delta to add (i.e. a</span>
<a name="line-87"></a><span class='hs-comment'>-- negative number) to give the next offset to iterate at.</span>
<a name="line-88"></a><span class='hs-definition'>reverseIter</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Text</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-conid'>Char</span><span class='hs-layout'>,</span><span class='hs-conid'>Int</span><span class='hs-layout'>)</span>
<a name="line-89"></a><span class='hs-definition'>reverseIter</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span> <span class='hs-sel'>_len</span><span class='hs-layout'>)</span> <span class='hs-varid'>i</span>
<a name="line-90"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>m</span> <span class='hs-varop'><</span> <span class='hs-num'>0xDC00</span> <span class='hs-varop'>||</span> <span class='hs-varid'>m</span> <span class='hs-varop'>></span> <span class='hs-num'>0xDFFF</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>unsafeChr</span> <span class='hs-varid'>m</span><span class='hs-layout'>,</span> <span class='hs-comment'>-</span><span class='hs-num'>1</span><span class='hs-layout'>)</span>
<a name="line-91"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>chr2</span> <span class='hs-varid'>n</span> <span class='hs-varid'>m</span><span class='hs-layout'>,</span> <span class='hs-comment'>-</span><span class='hs-num'>2</span><span class='hs-layout'>)</span>
<a name="line-92"></a> <span class='hs-keyword'>where</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>A</span><span class='hs-varop'>.</span><span class='hs-varid'>unsafeIndex</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>j</span>
<a name="line-93"></a> <span class='hs-varid'>n</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>A</span><span class='hs-varop'>.</span><span class='hs-varid'>unsafeIndex</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>k</span>
<a name="line-94"></a> <span class='hs-varid'>j</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>off</span> <span class='hs-varop'>+</span> <span class='hs-varid'>i</span>
<a name="line-95"></a> <span class='hs-varid'>k</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>j</span> <span class='hs-comment'>-</span> <span class='hs-num'>1</span>
<a name="line-96"></a><span class='hs-comment'>{-# INLINE reverseIter #-}</span>
<a name="line-97"></a>
<a name="line-98"></a><a name="reverseIter_"></a><span class='hs-comment'>-- | /O(1)/ Iterate one step backwards through a UTF-16 array,</span>
<a name="line-99"></a><span class='hs-comment'>-- returning the delta to add (i.e. a negative number) to give the</span>
<a name="line-100"></a><span class='hs-comment'>-- next offset to iterate at.</span>
<a name="line-101"></a><span class='hs-definition'>reverseIter_</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Text</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Int</span>
<a name="line-102"></a><span class='hs-definition'>reverseIter_</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span> <span class='hs-sel'>_len</span><span class='hs-layout'>)</span> <span class='hs-varid'>i</span>
<a name="line-103"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>m</span> <span class='hs-varop'><</span> <span class='hs-num'>0xDC00</span> <span class='hs-varop'>||</span> <span class='hs-varid'>m</span> <span class='hs-varop'>></span> <span class='hs-num'>0xDFFF</span> <span class='hs-keyglyph'>=</span> <span class='hs-comment'>-</span><span class='hs-num'>1</span>
<a name="line-104"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-comment'>-</span><span class='hs-num'>2</span>
<a name="line-105"></a> <span class='hs-keyword'>where</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>A</span><span class='hs-varop'>.</span><span class='hs-varid'>unsafeIndex</span> <span class='hs-varid'>arr</span> <span class='hs-layout'>(</span><span class='hs-varid'>off</span><span class='hs-varop'>+</span><span class='hs-varid'>i</span><span class='hs-layout'>)</span>
<a name="line-106"></a><span class='hs-comment'>{-# INLINE reverseIter_ #-}</span>
<a name="line-107"></a>
<a name="line-108"></a><a name="lengthWord16"></a><span class='hs-comment'>-- | /O(1)/ Return the length of a 'Text' in units of 'Word16'. This</span>
<a name="line-109"></a><span class='hs-comment'>-- is useful for sizing a target array appropriately before using</span>
<a name="line-110"></a><span class='hs-comment'>-- 'unsafeCopyToPtr'.</span>
<a name="line-111"></a><span class='hs-definition'>lengthWord16</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Text</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Int</span>
<a name="line-112"></a><span class='hs-definition'>lengthWord16</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span> <span class='hs-sel'>_arr</span> <span class='hs-sel'>_off</span> <span class='hs-varid'>len</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>len</span>
<a name="line-113"></a><span class='hs-comment'>{-# INLINE lengthWord16 #-}</span>
<a name="line-114"></a>
<a name="line-115"></a><a name="takeWord16"></a><span class='hs-comment'>-- | /O(1)/ Unchecked take of 'k' 'Word16's from the front of a 'Text'.</span>
<a name="line-116"></a><span class='hs-definition'>takeWord16</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Text</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Text</span>
<a name="line-117"></a><span class='hs-definition'>takeWord16</span> <span class='hs-varid'>k</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span> <span class='hs-sel'>_len</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span> <span class='hs-varid'>k</span>
<a name="line-118"></a><span class='hs-comment'>{-# INLINE takeWord16 #-}</span>
<a name="line-119"></a>
<a name="line-120"></a><a name="dropWord16"></a><span class='hs-comment'>-- | /O(1)/ Unchecked drop of 'k' 'Word16's from the front of a 'Text'.</span>
<a name="line-121"></a><span class='hs-definition'>dropWord16</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Text</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Text</span>
<a name="line-122"></a><span class='hs-definition'>dropWord16</span> <span class='hs-varid'>k</span> <span class='hs-layout'>(</span><span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-varid'>off</span> <span class='hs-varid'>len</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Text</span> <span class='hs-varid'>arr</span> <span class='hs-layout'>(</span><span class='hs-varid'>off</span><span class='hs-varop'>+</span><span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>len</span><span class='hs-comment'>-</span><span class='hs-varid'>k</span><span class='hs-layout'>)</span>
<a name="line-123"></a><span class='hs-comment'>{-# INLINE dropWord16 #-}</span>
</pre></body>
</html>
|