This commit is contained in:
LoricAndre 2026-08-22 13:34:18 +00:00
parent 6fee9038c2
commit b68d0f3bfa
61 changed files with 807 additions and 807 deletions

View file

@ -1,5 +1,5 @@
<svg width="116.3" height="20" viewBox="0 0 1163 200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Coverage: 85.44%">
<title>Coverage: 85.44%</title>
<svg width="116.3" height="20" viewBox="0 0 1163 200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Coverage: 85.36%">
<title>Coverage: 85.36%</title>
<linearGradient id="a" x2="0" y2="100%">
<stop offset="0" stop-opacity=".1" stop-color="#EEE"/>
<stop offset="1" stop-opacity=".1"/>
@ -13,8 +13,8 @@
<g aria-hidden="true" fill="#fff" text-anchor="start" font-family="Verdana,DejaVu Sans,sans-serif" font-size="110">
<text x="60" y="148" textLength="523" fill="#000" opacity="0.25">Coverage</text>
<text x="50" y="138" textLength="523">Coverage</text>
<text x="678" y="148" textLength="440" fill="#000" opacity="0.25">85.44%</text>
<text x="668" y="138" textLength="440">85.44%</text>
<text x="678" y="148" textLength="440" fill="#000" opacity="0.25">85.36%</text>
<text x="668" y="138" textLength="440">85.36%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1,009 B

After

Width:  |  Height:  |  Size: 1,009 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,15 +1,15 @@
<!doctype html><html><head><meta name='viewport' content='width=device-width,initial-scale=1'><meta charset='UTF-8'><link rel='stylesheet' type='text/css' href='../../../../../../../../style.css'><script src='../../../../../../../../control.js'></script></head><body><h2>Coverage Report</h2><h4>Created: 2026-08-22 09:33</h4><span class='control'><a href='javascript:next_line()'>next uncovered line (L)</a>, <a href='javascript:next_region()'>next uncovered region (R)</a>, <a href='javascript:next_branch()'>next uncovered branch (B)</a></span><div class='centered'><table><div class='source-name-title'><pre>/home/runner/work/skim/skim/src/fuzzy_matcher/util.rs</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></td></tr><tr><td class='line-number'><a name='L1' href='#L1'><pre>1</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use super::{FuzzyMatcher, IndexType, ScoreType};</pre></td></tr><tr><td class='line-number'><a name='L2' href='#L2'><pre>2</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3' href='#L3'><pre>3</pre></a></td><td class='covered-line'><pre>10.5k</pre></td><td class='code'><pre>pub fn cheap_matches(choice: &amp;[char], pattern: &amp;[char], case_sensitive: bool) -&gt; Option&lt;Vec&lt;usize&gt;&gt; {</pre></td></tr><tr><td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='covered-line'><pre>10.5k</pre></td><td class='code'><pre> let mut first_match_indices = vec![];</pre></td></tr><tr><td class='line-number'><a name='L5' href='#L5'><pre>5</pre></a></td><td class='covered-line'><pre>10.5k</pre></td><td class='code'><pre> let mut pattern_iter = pattern.iter().peekable();</pre></td></tr><tr><td class='line-number'><a name='L6' href='#L6'><pre>6</pre></a></td><td class='covered-line'><pre>47.8k</pre></td><td class='code'><pre> for (idx, &amp;c) in <div class='tooltip'>choice<span class='tooltip-content'>10.5k</span></div>.<div class='tooltip'>iter<span class='tooltip-content'>10.5k</span></div>().<div class='tooltip'>enumerate<span class='tooltip-content'>10.5k</span></div>() {</pre></td></tr><tr><td class='line-number'><a name='L7' href='#L7'><pre>7</pre></a></td><td class='covered-line'><pre>47.8k</pre></td><td class='code'><pre> match pattern_iter.peek() {</pre></td></tr><tr><td class='line-number'><a name='L8' href='#L8'><pre>8</pre></a></td><td class='covered-line'><pre>47.6k</pre></td><td class='code'><pre> Some(&amp;&amp;p) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L9' href='#L9'><pre>9</pre></a></td><td class='covered-line'><pre>47.6k</pre></td><td class='code'><pre> if char_equal(c, p, case_sensitive) {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L9' href='#L9'><span>9:20</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>396</span>, <span class='None'>False</span>: <span class='covered-line'>2.96k</span>]
<!doctype html><html><head><meta name='viewport' content='width=device-width,initial-scale=1'><meta charset='UTF-8'><link rel='stylesheet' type='text/css' href='../../../../../../../../style.css'><script src='../../../../../../../../control.js'></script></head><body><h2>Coverage Report</h2><h4>Created: 2026-08-22 13:34</h4><span class='control'><a href='javascript:next_line()'>next uncovered line (L)</a>, <a href='javascript:next_region()'>next uncovered region (R)</a>, <a href='javascript:next_branch()'>next uncovered branch (B)</a></span><div class='centered'><table><div class='source-name-title'><pre>/home/runner/work/skim/skim/src/fuzzy_matcher/util.rs</pre></div><tr><td><pre>Line</pre></td><td><pre>Count</pre></td><td><pre>Source</pre></td></td></tr><tr><td class='line-number'><a name='L1' href='#L1'><pre>1</pre></a></td><td class='skipped-line'></td><td class='code'><pre>use super::{FuzzyMatcher, IndexType, ScoreType};</pre></td></tr><tr><td class='line-number'><a name='L2' href='#L2'><pre>2</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L3' href='#L3'><pre>3</pre></a></td><td class='covered-line'><pre>10.5k</pre></td><td class='code'><pre>pub fn cheap_matches(choice: &amp;[char], pattern: &amp;[char], case_sensitive: bool) -&gt; Option&lt;Vec&lt;usize&gt;&gt; {</pre></td></tr><tr><td class='line-number'><a name='L4' href='#L4'><pre>4</pre></a></td><td class='covered-line'><pre>10.5k</pre></td><td class='code'><pre> let mut first_match_indices = vec![];</pre></td></tr><tr><td class='line-number'><a name='L5' href='#L5'><pre>5</pre></a></td><td class='covered-line'><pre>10.5k</pre></td><td class='code'><pre> let mut pattern_iter = pattern.iter().peekable();</pre></td></tr><tr><td class='line-number'><a name='L6' href='#L6'><pre>6</pre></a></td><td class='covered-line'><pre>47.8k</pre></td><td class='code'><pre> for (idx, &amp;c) in <div class='tooltip'>choice<span class='tooltip-content'>10.5k</span></div>.<div class='tooltip'>iter<span class='tooltip-content'>10.5k</span></div>().<div class='tooltip'>enumerate<span class='tooltip-content'>10.5k</span></div>() {</pre></td></tr><tr><td class='line-number'><a name='L7' href='#L7'><pre>7</pre></a></td><td class='covered-line'><pre>47.8k</pre></td><td class='code'><pre> match pattern_iter.peek() {</pre></td></tr><tr><td class='line-number'><a name='L8' href='#L8'><pre>8</pre></a></td><td class='covered-line'><pre>47.6k</pre></td><td class='code'><pre> Some(&amp;&amp;p) =&gt; {</pre></td></tr><tr><td class='line-number'><a name='L9' href='#L9'><pre>9</pre></a></td><td class='covered-line'><pre>47.6k</pre></td><td class='code'><pre> if char_equal(c, p, case_sensitive) {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L9' href='#L9'><span>9:20</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>396</span>, <span class='None'>False</span>: <span class='covered-line'>2.96k</span>]
</pre></div><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L9' href='#L9'><span>9:20</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>4.72k</span>, <span class='None'>False</span>: <span class='covered-line'>39.5k</span>]
</pre></div></td></tr><tr><td class='line-number'><a name='L10' href='#L10'><pre>10</pre></a></td><td class='covered-line'><pre>5.12k</pre></td><td class='code'><pre> first_match_indices.push(idx);</pre></td></tr><tr><td class='line-number'><a name='L11' href='#L11'><pre>11</pre></a></td><td class='covered-line'><pre>5.12k</pre></td><td class='code'><pre> let _ = pattern_iter.next();</pre></td></tr><tr><td class='line-number'><a name='L12' href='#L12'><pre>12</pre></a></td><td class='covered-line'><pre>42.5k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L13' href='#L13'><pre>13</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L14' href='#L14'><pre>14</pre></a></td><td class='covered-line'><pre>160</pre></td><td class='code'><pre> None =&gt; break,</pre></td></tr><tr><td class='line-number'><a name='L15' href='#L15'><pre>15</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L16' href='#L16'><pre>16</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L17' href='#L17'><pre>17</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L18' href='#L18'><pre>18</pre></a></td><td class='covered-line'><pre>10.5k</pre></td><td class='code'><pre> if pattern_iter.peek().is_none() {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L18' href='#L18'><span>18:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>8</span>, <span class='None'>False</span>: <span class='covered-line'>188</span>]
</pre></div><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L18' href='#L18'><span>18:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>266</span>, <span class='None'>False</span>: <span class='covered-line'>10.0k</span>]
</pre></div></td></tr><tr><td class='line-number'><a name='L19' href='#L19'><pre>19</pre></a></td><td class='covered-line'><pre>274</pre></td><td class='code'><pre> Some(first_match_indices)</pre></td></tr><tr><td class='line-number'><a name='L20' href='#L20'><pre>20</pre></a></td><td class='skipped-line'></td><td class='code'><pre> } else {</pre></td></tr><tr><td class='line-number'><a name='L21' href='#L21'><pre>21</pre></a></td><td class='covered-line'><pre>10.2k</pre></td><td class='code'><pre> None</pre></td></tr><tr><td class='line-number'><a name='L22' href='#L22'><pre>22</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L23' href='#L23'><pre>23</pre></a></td><td class='covered-line'><pre>10.5k</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L24' href='#L24'><pre>24</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L25' href='#L25'><pre>25</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Convert the Unicode fullwidth form of an ASCII character to ASCII.</pre></td></tr><tr><td class='line-number'><a name='L26' href='#L26'><pre>26</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[inline]</pre></td></tr><tr><td class='line-number'><a name='L27' href='#L27'><pre>27</pre></a></td><td class='covered-line'><pre>1.27M</pre></td><td class='code'><pre>fn narrow_ascii_width(ch: char) -&gt; char {</pre></td></tr><tr><td class='line-number'><a name='L28' href='#L28'><pre>28</pre></a></td><td class='covered-line'><pre>1.27M</pre></td><td class='code'><pre> match ch {</pre></td></tr><tr><td class='line-number'><a name='L29' href='#L29'><pre>29</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> &apos;\u{3000}&apos; =&gt; &apos; &apos;,</pre></td></tr><tr><td class='line-number'><a name='L30' href='#L30'><pre>30</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> &apos;\u{FF01}&apos;..=&apos;\u{FF5E}&apos; =&gt; char::from_u32(ch as u32 - 0xFEE0).unwrap_or(ch),</pre></td></tr><tr><td class='line-number'><a name='L31' href='#L31'><pre>31</pre></a></td><td class='covered-line'><pre>1.27M</pre></td><td class='code'><pre> _ =&gt; ch,</pre></td></tr><tr><td class='line-number'><a name='L32' href='#L32'><pre>32</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L33' href='#L33'><pre>33</pre></a></td><td class='covered-line'><pre>1.27M</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L34' href='#L34'><pre>34</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L35' href='#L35'><pre>35</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Given two characters, check if they are equal after folding ASCII width and,</pre></td></tr><tr><td class='line-number'><a name='L36' href='#L36'><pre>36</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// when requested, case.</pre></td></tr><tr><td class='line-number'><a name='L37' href='#L37'><pre>37</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// e.g. (&apos;a&apos;, &apos;A&apos;, true) =&gt; false</pre></td></tr><tr><td class='line-number'><a name='L38' href='#L38'><pre>38</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// e.g. (&apos;a&apos;, &apos;A&apos;, false) =&gt; true</pre></td></tr><tr><td class='line-number'><a name='L39' href='#L39'><pre>39</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// e.g. (&apos;&apos;, &apos;a&apos;, true) =&gt; true</pre></td></tr><tr><td class='line-number'><a name='L40' href='#L40'><pre>40</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[inline]</pre></td></tr><tr><td class='line-number'><a name='L41' href='#L41'><pre>41</pre></a></td><td class='covered-line'><pre>668k</pre></td><td class='code'><pre>pub fn char_equal(a: char, b: char, case_sensitive: bool) -&gt; bool {</pre></td></tr><tr><td class='line-number'><a name='L42' href='#L42'><pre>42</pre></a></td><td class='covered-line'><pre>668k</pre></td><td class='code'><pre> if a == b {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L42' href='#L42'><span>42:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>804</span>, <span class='None'>False</span>: <span class='covered-line'>4.02k</span>]
</pre></div></td></tr><tr><td class='line-number'><a name='L19' href='#L19'><pre>19</pre></a></td><td class='covered-line'><pre>274</pre></td><td class='code'><pre> Some(first_match_indices)</pre></td></tr><tr><td class='line-number'><a name='L20' href='#L20'><pre>20</pre></a></td><td class='skipped-line'></td><td class='code'><pre> } else {</pre></td></tr><tr><td class='line-number'><a name='L21' href='#L21'><pre>21</pre></a></td><td class='covered-line'><pre>10.2k</pre></td><td class='code'><pre> None</pre></td></tr><tr><td class='line-number'><a name='L22' href='#L22'><pre>22</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L23' href='#L23'><pre>23</pre></a></td><td class='covered-line'><pre>10.5k</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L24' href='#L24'><pre>24</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L25' href='#L25'><pre>25</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Convert the Unicode fullwidth form of an ASCII character to ASCII.</pre></td></tr><tr><td class='line-number'><a name='L26' href='#L26'><pre>26</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[inline]</pre></td></tr><tr><td class='line-number'><a name='L27' href='#L27'><pre>27</pre></a></td><td class='covered-line'><pre>1.27M</pre></td><td class='code'><pre>fn narrow_ascii_width(ch: char) -&gt; char {</pre></td></tr><tr><td class='line-number'><a name='L28' href='#L28'><pre>28</pre></a></td><td class='covered-line'><pre>1.27M</pre></td><td class='code'><pre> match ch {</pre></td></tr><tr><td class='line-number'><a name='L29' href='#L29'><pre>29</pre></a></td><td class='covered-line'><pre>1</pre></td><td class='code'><pre> &apos;\u{3000}&apos; =&gt; &apos; &apos;,</pre></td></tr><tr><td class='line-number'><a name='L30' href='#L30'><pre>30</pre></a></td><td class='covered-line'><pre>16</pre></td><td class='code'><pre> &apos;\u{FF01}&apos;..=&apos;\u{FF5E}&apos; =&gt; char::from_u32(ch as u32 - 0xFEE0).unwrap_or(ch),</pre></td></tr><tr><td class='line-number'><a name='L31' href='#L31'><pre>31</pre></a></td><td class='covered-line'><pre>1.27M</pre></td><td class='code'><pre> _ =&gt; ch,</pre></td></tr><tr><td class='line-number'><a name='L32' href='#L32'><pre>32</pre></a></td><td class='skipped-line'></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L33' href='#L33'><pre>33</pre></a></td><td class='covered-line'><pre>1.27M</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L34' href='#L34'><pre>34</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L35' href='#L35'><pre>35</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// Given two characters, check if they are equal after folding ASCII width and,</pre></td></tr><tr><td class='line-number'><a name='L36' href='#L36'><pre>36</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// when requested, case.</pre></td></tr><tr><td class='line-number'><a name='L37' href='#L37'><pre>37</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// e.g. (&apos;a&apos;, &apos;A&apos;, true) =&gt; false</pre></td></tr><tr><td class='line-number'><a name='L38' href='#L38'><pre>38</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// e.g. (&apos;a&apos;, &apos;A&apos;, false) =&gt; true</pre></td></tr><tr><td class='line-number'><a name='L39' href='#L39'><pre>39</pre></a></td><td class='skipped-line'></td><td class='code'><pre>/// e.g. (&apos;&apos;, &apos;a&apos;, true) =&gt; true</pre></td></tr><tr><td class='line-number'><a name='L40' href='#L40'><pre>40</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[inline]</pre></td></tr><tr><td class='line-number'><a name='L41' href='#L41'><pre>41</pre></a></td><td class='covered-line'><pre>668k</pre></td><td class='code'><pre>pub fn char_equal(a: char, b: char, case_sensitive: bool) -&gt; bool {</pre></td></tr><tr><td class='line-number'><a name='L42' href='#L42'><pre>42</pre></a></td><td class='covered-line'><pre>668k</pre></td><td class='code'><pre> if a == b {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L42' href='#L42'><span>42:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>808</span>, <span class='None'>False</span>: <span class='covered-line'>4.03k</span>]
</pre></div><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L42' href='#L42'><span>42:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>30.3k</span>, <span class='None'>False</span>: <span class='covered-line'>633k</span>]
</pre></div></td></tr><tr><td class='line-number'><a name='L43' href='#L43'><pre>43</pre></a></td><td class='covered-line'><pre>31.1k</pre></td><td class='code'><pre> return true;</pre></td></tr><tr><td class='line-number'><a name='L44' href='#L44'><pre>44</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L45' href='#L45'><pre>45</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L46' href='#L46'><pre>46</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> let a = narrow_ascii_width(a);</pre></td></tr><tr><td class='line-number'><a name='L47' href='#L47'><pre>47</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> let b = narrow_ascii_width(b);</pre></td></tr><tr><td class='line-number'><a name='L48' href='#L48'><pre>48</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L49' href='#L49'><pre>49</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> if a == b {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L49' href='#L49'><span>49:8</span></a></span>): [<span class='red branch'>True</span>: <span class='uncovered-line'>0</span>, <span class='None'>False</span>: <span class='covered-line'>4.02k</span>]
</pre></div></td></tr><tr><td class='line-number'><a name='L43' href='#L43'><pre>43</pre></a></td><td class='covered-line'><pre>31.1k</pre></td><td class='code'><pre> return true;</pre></td></tr><tr><td class='line-number'><a name='L44' href='#L44'><pre>44</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L45' href='#L45'><pre>45</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L46' href='#L46'><pre>46</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> let a = narrow_ascii_width(a);</pre></td></tr><tr><td class='line-number'><a name='L47' href='#L47'><pre>47</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> let b = narrow_ascii_width(b);</pre></td></tr><tr><td class='line-number'><a name='L48' href='#L48'><pre>48</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L49' href='#L49'><pre>49</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> if a == b {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L49' href='#L49'><span>49:8</span></a></span>): [<span class='red branch'>True</span>: <span class='uncovered-line'>0</span>, <span class='None'>False</span>: <span class='covered-line'>4.03k</span>]
</pre></div><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L49' href='#L49'><span>49:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>11</span>, <span class='None'>False</span>: <span class='covered-line'>633k</span>]
</pre></div></td></tr><tr><td class='line-number'><a name='L50' href='#L50'><pre>50</pre></a></td><td class='covered-line'><pre>11</pre></td><td class='code'><pre> return true;</pre></td></tr><tr><td class='line-number'><a name='L51' href='#L51'><pre>51</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L52' href='#L52'><pre>52</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L53' href='#L53'><pre>53</pre></a></td><td class='covered-line'><pre>637k</pre></td><td class='code'><pre> if case_sensitive {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L53' href='#L53'><span>53:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>96</span>, <span class='None'>False</span>: <span class='covered-line'>3.93k</span>]
</pre></div><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L53' href='#L53'><span>53:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>295k</span>, <span class='None'>False</span>: <span class='covered-line'>338k</span>]
</pre></div></td></tr><tr><td class='line-number'><a name='L54' href='#L54'><pre>54</pre></a></td><td class='covered-line'><pre>295k</pre></td><td class='code'><pre> return false;</pre></td></tr><tr><td class='line-number'><a name='L55' href='#L55'><pre>55</pre></a></td><td class='covered-line'><pre>342k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L56' href='#L56'><pre>56</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L57' href='#L57'><pre>57</pre></a></td><td class='covered-line'><pre>342k</pre></td><td class='code'><pre> if a.is_ascii() &amp;&amp; <div class='tooltip'>b<span class='tooltip-content'>85.0k</span></div>.<div class='tooltip'>is_ascii<span class='tooltip-content'>85.0k</span></div>() {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L57' href='#L57'><span>57:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>3.59k</span>, <span class='None'>False</span>: <span class='covered-line'>338</span>]
Branch (<span class='line-number'><a name='L57' href='#L57'><span>57:24</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>3.56k</span>, <span class='None'>False</span>: <span class='covered-line'>26</span>]
</pre></div></td></tr><tr><td class='line-number'><a name='L54' href='#L54'><pre>54</pre></a></td><td class='covered-line'><pre>295k</pre></td><td class='code'><pre> return false;</pre></td></tr><tr><td class='line-number'><a name='L55' href='#L55'><pre>55</pre></a></td><td class='covered-line'><pre>342k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L56' href='#L56'><pre>56</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L57' href='#L57'><pre>57</pre></a></td><td class='covered-line'><pre>342k</pre></td><td class='code'><pre> if a.is_ascii() &amp;&amp; <div class='tooltip'>b<span class='tooltip-content'>85.0k</span></div>.<div class='tooltip'>is_ascii<span class='tooltip-content'>85.0k</span></div>() {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L57' href='#L57'><span>57:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>3.60k</span>, <span class='None'>False</span>: <span class='covered-line'>338</span>]
Branch (<span class='line-number'><a name='L57' href='#L57'><span>57:24</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>3.56k</span>, <span class='None'>False</span>: <span class='covered-line'>31</span>]
</pre></div><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L57' href='#L57'><span>57:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>81.4k</span>, <span class='None'>False</span>: <span class='covered-line'>256k</span>]
Branch (<span class='line-number'><a name='L57' href='#L57'><span>57:24</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>43.6k</span>, <span class='None'>False</span>: <span class='covered-line'>37.7k</span>]
</pre></div></td></tr><tr><td class='line-number'><a name='L58' href='#L58'><pre>58</pre></a></td><td class='covered-line'><pre>47.2k</pre></td><td class='code'><pre> return a.eq_ignore_ascii_case(&amp;b);</pre></td></tr><tr><td class='line-number'><a name='L59' href='#L59'><pre>59</pre></a></td><td class='covered-line'><pre>294k</pre></td><td class='code'><pre> }</pre></td></tr><tr><td class='line-number'><a name='L60' href='#L60'><pre>60</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L61' href='#L61'><pre>61</pre></a></td><td class='covered-line'><pre>294k</pre></td><td class='code'><pre> a.to_lowercase().eq(b.to_lowercase())</pre></td></tr><tr><td class='line-number'><a name='L62' href='#L62'><pre>62</pre></a></td><td class='covered-line'><pre>668k</pre></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L63' href='#L63'><pre>63</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L64' href='#L64'><pre>64</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[derive(Debug, PartialEq)]</pre></td></tr><tr><td class='line-number'><a name='L65' href='#L65'><pre>65</pre></a></td><td class='skipped-line'></td><td class='code'><pre>pub enum CharType {</pre></td></tr><tr><td class='line-number'><a name='L66' href='#L66'><pre>66</pre></a></td><td class='skipped-line'></td><td class='code'><pre> NonWord,</pre></td></tr><tr><td class='line-number'><a name='L67' href='#L67'><pre>67</pre></a></td><td class='skipped-line'></td><td class='code'><pre> Lower,</pre></td></tr><tr><td class='line-number'><a name='L68' href='#L68'><pre>68</pre></a></td><td class='skipped-line'></td><td class='code'><pre> Upper,</pre></td></tr><tr><td class='line-number'><a name='L69' href='#L69'><pre>69</pre></a></td><td class='skipped-line'></td><td class='code'><pre> Number,</pre></td></tr><tr><td class='line-number'><a name='L70' href='#L70'><pre>70</pre></a></td><td class='skipped-line'></td><td class='code'><pre>}</pre></td></tr><tr><td class='line-number'><a name='L71' href='#L71'><pre>71</pre></a></td><td class='skipped-line'></td><td class='code'><pre></pre></td></tr><tr><td class='line-number'><a name='L72' href='#L72'><pre>72</pre></a></td><td class='skipped-line'></td><td class='code'><pre>#[inline]</pre></td></tr><tr><td class='line-number'><a name='L73' href='#L73'><pre>73</pre></a></td><td class='covered-line'><pre>3.69k</pre></td><td class='code'><pre>pub fn char_type_of(ch: char) -&gt; CharType {</pre></td></tr><tr><td class='line-number'><a name='L74' href='#L74'><pre>74</pre></a></td><td class='covered-line'><pre>3.69k</pre></td><td class='code'><pre> if ch.is_lowercase() {</pre><div class='expansion-view'><pre> Branch (<span class='line-number'><a name='L74' href='#L74'><span>74:8</span></a></span>): [<span class='None'>True</span>: <span class='covered-line'>261</span>, <span class='None'>False</span>: <span class='covered-line'>69</span>]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long