This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 3f0aee23437 deploy: a20116ec36f8c0c959aa9e6c547dc7e5625ebb1b
3f0aee23437 is described below

commit 3f0aee234371c0d1746fdb54deea50f0860071d7
Author: alamb <[email protected]>
AuthorDate: Tue Jun 11 18:50:23 2024 +0000

    deploy: a20116ec36f8c0c959aa9e6c547dc7e5625ebb1b
---
 index.html                                         |  2 +-
 .../selection/fn.intersect_row_selections.html     |  2 +-
 parquet/arrow/arrow_reader/selection/index.html    |  2 +-
 .../selection/struct.RowSelection.html             | 37 +++++++++++++---------
 .../arrow_reader/selection/struct.RowSelector.html |  2 +-
 .../arrow/arrow_reader/struct.RowSelection.html    | 37 +++++++++++++---------
 parquet/arrow/arrow_reader/struct.RowSelector.html |  2 +-
 src/parquet/arrow/arrow_reader/selection.rs.html   | 32 +++++++++++++++++--
 8 files changed, 78 insertions(+), 38 deletions(-)

diff --git a/index.html b/index.html
index 5affe225a19..775dc9a163e 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="List of 
crates"><title>Index of 
crates</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-5
 [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="List of 
crates"><title>Index of 
crates</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-5
 [...]
\ No newline at end of file
diff --git 
a/parquet/arrow/arrow_reader/selection/fn.intersect_row_selections.html 
b/parquet/arrow/arrow_reader/selection/fn.intersect_row_selections.html
index b457b646f82..4e834537dc6 100644
--- a/parquet/arrow/arrow_reader/selection/fn.intersect_row_selections.html
+++ b/parquet/arrow/arrow_reader/selection/fn.intersect_row_selections.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Combine 
two lists of `RowSelection` return the intersection of them For example: self:  
    NNYYYYNNYYNYN other:     NYNNNNNNY"><title>intersect_row_selections in 
parquet::arrow::arrow_reader::selection - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjac
 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Combine 
two lists of `RowSelection` return the intersection of them For example: self:  
    NNYYYYNNYYNYN other:     NYNNNNNNY"><title>intersect_row_selections in 
parquet::arrow::arrow_reader::selection - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjac
 [...]
     left: &amp;[<a class="struct" href="struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a>],
     right: &amp;[<a class="struct" href="struct.RowSelector.html" 
title="struct 
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a>],
 ) -&gt; <a class="struct" href="struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection">RowSelection</a></code></pre><details
 class="toggle top-doc" open><summary class="hideme"><span>Expand 
description</span></summary><div class="docblock"><p>Combine two lists of 
<code>RowSelection</code> return the intersection of them
diff --git a/parquet/arrow/arrow_reader/selection/index.html 
b/parquet/arrow/arrow_reader/selection/index.html
index 944b31243d5..46849d61f3c 100644
--- a/parquet/arrow/arrow_reader/selection/index.html
+++ b/parquet/arrow/arrow_reader/selection/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="API 
documentation for the Rust `selection` mod in crate 
`parquet`."><title>parquet::arrow::arrow_reader::selection - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-01
 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="API 
documentation for the Rust `selection` mod in crate 
`parquet`."><title>parquet::arrow::arrow_reader::selection - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-01
 [...]
 when scanning the parquet file.</div></li><li><div class="item-name"><a 
class="struct" href="struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a></div><div 
class="desc docblock-short"><a href="struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
 is a collection of <a href="struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelecto [...]
 scanning a parquet file</div></li></ul><h2 id="functions" 
class="section-header">Functions<a href="#functions" 
class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a 
class="fn" href="fn.intersect_row_selections.html" title="fn 
parquet::arrow::arrow_reader::selection::intersect_row_selections">intersect_row_selections</a><span
 title="Restricted Visibility">&nbsp;🔒</span> </div><div class="desc 
docblock-short">Combine two lists of <code>RowSelection</code> return the [...]
 For example:
diff --git a/parquet/arrow/arrow_reader/selection/struct.RowSelection.html 
b/parquet/arrow/arrow_reader/selection/struct.RowSelection.html
index 09e2e5e4c40..546d94e2253 100644
--- a/parquet/arrow/arrow_reader/selection/struct.RowSelection.html
+++ b/parquet/arrow/arrow_reader/selection/struct.RowSelection.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" 
content="`RowSelection` allows selecting or skipping a provided number of rows 
when scanning the parquet file."><title>RowSelection in 
parquet::arrow::arrow_reader::selection - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Reg
 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" 
content="`RowSelection` allows selecting or skipping a provided number of rows 
when scanning the parquet file."><title>RowSelection in 
parquet::arrow::arrow_reader::selection - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Reg
 [...]
     selectors: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" 
href="struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a>&gt;,
 }</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p><a href="struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
 allows selecting or skipping a provided number of rows
 when scanning the parquet file.</p>
@@ -25,6 +25,13 @@ that don’t satisfy a predicate</p>
     RowSelector::skip(<span class="number">5</span>),
 ];
 
+<span class="kw">let </span>actual: Vec&lt;RowSelector&gt; = selection.into();
+<span class="macro">assert_eq!</span>(actual, expected);
+
+<span class="comment">// you can also create a selection from consecutive 
ranges
+</span><span class="kw">let </span>ranges = <span 
class="macro">vec!</span>[<span class="number">5</span>..<span 
class="number">10</span>, <span class="number">10</span>..<span 
class="number">15</span>];
+<span class="kw">let </span>selection =
+  RowSelection::from_consecutive_ranges(ranges.into_iter(), <span 
class="number">20</span>);
 <span class="kw">let </span>actual: Vec&lt;RowSelector&gt; = selection.into();
 <span class="macro">assert_eq!</span>(actual, expected);</code></pre></div>
 <p>A <a href="struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
 maintains the following invariants:</p>
@@ -32,20 +39,20 @@ that don’t satisfy a predicate</p>
 <li>It contains no <a href="struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelector"><code>RowSelector</code></a>
 of 0 rows</li>
 <li>Consecutive <a href="struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelector"><code>RowSelector</code></a>s
 alternate skipping or selecting rows</li>
 </ul>
-</div></details><h2 id="fields" class="fields section-header">Fields<a 
href="#fields" class="anchor">§</a></h2><span id="structfield.selectors" 
class="structfield section-header"><a href="#structfield.selectors" 
class="anchor field">§</a><code>selectors: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" 
href="struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSel [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a 
href="#fields" class="anchor">§</a></h2><span id="structfield.selectors" 
class="structfield section-header"><a href="#structfield.selectors" 
class="anchor field">§</a><code>selectors: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" 
href="struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSel [...]
 <h5 id="panic"><a class="doc-anchor" href="#panic">§</a>Panic</h5>
 <p>Panics if any of the [<code>BooleanArray</code>] contain nulls</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.from_consecutive_ranges" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#118-149">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.from_consecutive_ranges" 
class="fn">from_consecutive_ranges</a>&lt;I: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html";
 title="trait core::iter: [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.from_consecutive_ranges" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#125-156">source</a><h4
 class="code-header">pub fn <a href="#method.from_consecutive_ranges" 
class="fn">from_consecutive_ranges</a>&lt;I: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html";
 title="trait core::iter::traits [...]
     ranges: I,
     total_rows: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>,
 ) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a <a 
href="struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
 from an iterator of consecutive ranges to keep</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.scan_ranges" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#158-205">source</a><h4
 class="code-header">pub fn <a href="#method.scan_ranges" 
class="fn">scan_ranges</a>(&amp;self, page_locations: &amp;[<a class="struct" 
href="../../../format/struct.PageLocation.html" title="struct 
parquet::format::PageLocation">PageLocation</a>]) -&gt; <a class [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.scan_ranges" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#165-212">source</a><h4
 class="code-header">pub fn <a href="#method.scan_ranges" 
class="fn">scan_ranges</a>(&amp;self, page_locations: &amp;[<a class="struct" 
href="../../../format/struct.PageLocation.html" title="struct 
parquet::format::PageLocation">PageLocation</a>]) -&gt; <a class [...]
 <p>This is useful for determining what byte ranges to fetch from underlying 
storage</p>
 <p>Note: this method does not make any effort to combine consecutive ranges, 
nor coalesce
 ranges that are close together. This is instead delegated to the IO subsystem 
to optimise,
 e.g. <a 
href="object_store::ObjectStore::get_ranges"><code>ObjectStore::get_ranges</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.split_off" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#208-243">source</a><h4
 class="code-header">pub fn <a href="#method.split_off" 
class="fn">split_off</a>(&amp;mut self, row_count: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.and_then" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#266-327">source</a><h4
 class="code-header">pub fn <a href="#method.and_then" 
class="fn">and_then</a>(&amp;self, other: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;Self</a>)
 -&gt; Self</h4></section></summary><div class="docblock"><p>re [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.split_off" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#215-250">source</a><h4
 class="code-header">pub fn <a href="#method.split_off" 
class="fn">split_off</a>(&amp;mut self, row_count: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.and_then" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#273-334">source</a><h4
 class="code-header">pub fn <a href="#method.and_then" 
class="fn">and_then</a>(&amp;self, other: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;Self</a>)
 -&gt; Self</h4></section></summary><div class="docblock"><p>re [...]
 input <a href="struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>s.</p>
 <p>This is equivalent to the logical <code>AND</code> / conjunction of the two
 selections.</p>
@@ -59,21 +66,21 @@ returned: NNNNNNNNNNNNYYYYYNNNNYYYYYYYYYYYYYNNNYYNNN
 </code></pre></div><h5 id="panics"><a class="doc-anchor" 
href="#panics">§</a>Panics</h5>
 <p>Panics if <code>other</code> does not have a length equal to the number of 
rows selected
 by this RowSelection</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.intersection" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#335-337">source</a><h4
 class="code-header">pub fn <a href="#method.intersection" 
class="fn">intersection</a>(&amp;self, other: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;Self</a>)
 -&gt; Self</h4></section></summary><div class="doc [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.intersection" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#342-344">source</a><h4
 class="code-header">pub fn <a href="#method.intersection" 
class="fn">intersection</a>(&amp;self, other: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;Self</a>)
 -&gt; Self</h4></section></summary><div class="doc [...]
 For example:
 self:      NNYYYYNNYYNYN
 other:     NYNNNNNNY</p>
 <p>returned:  NNNNNNNNYYNYN</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.selects_any" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#340-342">source</a><h4
 class="code-header">pub fn <a href="#method.selects_any" 
class="fn">selects_any</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></h4></section></summary><div
 class="docblock"><p>Returns <code>tr [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.trim" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#345-350">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.trim" 
class="fn">trim</a>(self) -&gt; Self</h4></section></summary><div 
class="docblock"><p>Trims this <a href="struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowS [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.offset" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#353-390">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.offset" 
class="fn">offset</a>(self, offset: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Applies an of [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.limit" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#393-410">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.limit" 
class="fn">limit</a>(self, limit: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Limit this <a hre 
[...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.iter" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#414-416">source</a><h4
 class="code-header">pub fn <a href="#method.iter" 
class="fn">iter</a>(&amp;self) -&gt; impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html";
 title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Ite [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.selects_any" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#347-349">source</a><h4
 class="code-header">pub fn <a href="#method.selects_any" 
class="fn">selects_any</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></h4></section></summary><div
 class="docblock"><p>Returns <code>tr [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.trim" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#352-357">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.trim" 
class="fn">trim</a>(self) -&gt; Self</h4></section></summary><div 
class="docblock"><p>Trims this <a href="struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowS [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.offset" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#360-397">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.offset" 
class="fn">offset</a>(self, offset: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Applies an of [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.limit" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#400-417">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.limit" 
class="fn">limit</a>(self, limit: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Limit this <a hre 
[...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.iter" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#421-423">source</a><h4
 class="code-header">pub fn <a href="#method.iter" 
class="fn">iter</a>(&amp;self) -&gt; impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html";
 title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Ite [...]
 <a href="struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.row_count" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#419-421">source</a><h4
 class="code-header">pub fn <a href="#method.row_count" 
class="fn">row_count</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a></h4></section></summary><div
 class="docblock"><p>Returns the number o [...]
-</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a
 href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 cl [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.row_count" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#426-428">source</a><h4
 class="code-header">pub fn <a href="#method.row_count" 
class="fn">row_count</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a></h4></section></summary><div
 class="docblock"><p>Returns the number o [...]
+</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#99">source</a><a
 href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 cl [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
-sufficient, and should not be overridden without very good 
reason.</div></details></div></details><section id="impl-Eq-for-RowSelection" 
class="impl"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a
 href="#impl-Eq-for-RowSelection" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"; title="trait 
core::cmp::Eq">Eq</a> for <a class="struct" href="struct. [...]
+sufficient, and should not be overridden without very good 
reason.</div></details></div></details><section id="impl-Eq-for-RowSelection" 
class="impl"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#99">source</a><a
 href="#impl-Eq-for-RowSelection" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"; title="trait 
core::cmp::Eq">Eq</a> for <a class="struct" href="struct. [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210";>source</a><a
 href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a 
href="https:/ [...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow_mut" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217";>source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href= [...]
diff --git a/parquet/arrow/arrow_reader/selection/struct.RowSelector.html 
b/parquet/arrow/arrow_reader/selection/struct.RowSelector.html
index ace594d91c3..8836d67ae5b 100644
--- a/parquet/arrow/arrow_reader/selection/struct.RowSelector.html
+++ b/parquet/arrow/arrow_reader/selection/struct.RowSelector.html
@@ -7,7 +7,7 @@ scanning a parquet file</p>
 </div><span id="structfield.skip" class="structfield section-header"><a 
href="#structfield.skip" class="anchor field">§</a><code>skip: <a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></code></span><div
 class="docblock"><p>If true, skip <code>row_count</code> rows</p>
 </div><h2 id="implementations" class="section-header">Implementations<a 
href="#implementations" class="anchor">§</a></h2><div 
id="implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-RowSelector" class="impl"><a class="src 
rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#35-51">source</a><a
 href="#impl-RowSelector" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.RowSelector.html" tit [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.skip" class="method"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#45-50">source</a><h4
 class="code-header">pub fn <a href="#method.skip" 
class="fn">skip</a>(row_count: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Skip 
<code>row_count</code> rows</p>
-</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-RowSelector" class="impl"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
 href="#impl-Clone-for-RowSelector" class="anchor">§</a><h3 clas [...]
+</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-RowSelector" class="impl"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
 href="#impl-Clone-for-RowSelector" class="anchor">§</a><h3 clas [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
 sufficient, and should not be overridden without very good 
reason.</div></details></div></details><section id="impl-Copy-for-RowSelector" 
class="impl"><a class="src rightside" 
href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
 href="#impl-Copy-for-RowSelector" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html"; 
title="trait core::marker::Copy">Copy</a> for <a class="struct" [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
diff --git a/parquet/arrow/arrow_reader/struct.RowSelection.html 
b/parquet/arrow/arrow_reader/struct.RowSelection.html
index 83407074d6e..7276838a0e6 100644
--- a/parquet/arrow/arrow_reader/struct.RowSelection.html
+++ b/parquet/arrow/arrow_reader/struct.RowSelection.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" 
content="`RowSelection` allows selecting or skipping a provided number of rows 
when scanning the parquet file."><title>RowSelection in 
parquet::arrow::arrow_reader - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98e
 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" 
content="`RowSelection` allows selecting or skipping a provided number of rows 
when scanning the parquet file."><title>RowSelection in 
parquet::arrow::arrow_reader - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98e
 [...]
     selectors: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" 
href="selection/struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelector">RowSelector</a>&gt;,
 }</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p><a href="selection/struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
 allows selecting or skipping a provided number of rows
 when scanning the parquet file.</p>
@@ -25,6 +25,13 @@ that don’t satisfy a predicate</p>
     RowSelector::skip(<span class="number">5</span>),
 ];
 
+<span class="kw">let </span>actual: Vec&lt;RowSelector&gt; = selection.into();
+<span class="macro">assert_eq!</span>(actual, expected);
+
+<span class="comment">// you can also create a selection from consecutive 
ranges
+</span><span class="kw">let </span>ranges = <span 
class="macro">vec!</span>[<span class="number">5</span>..<span 
class="number">10</span>, <span class="number">10</span>..<span 
class="number">15</span>];
+<span class="kw">let </span>selection =
+  RowSelection::from_consecutive_ranges(ranges.into_iter(), <span 
class="number">20</span>);
 <span class="kw">let </span>actual: Vec&lt;RowSelector&gt; = selection.into();
 <span class="macro">assert_eq!</span>(actual, expected);</code></pre></div>
 <p>A <a href="selection/struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
 maintains the following invariants:</p>
@@ -32,20 +39,20 @@ that don’t satisfy a predicate</p>
 <li>It contains no <a href="selection/struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelector"><code>RowSelector</code></a>
 of 0 rows</li>
 <li>Consecutive <a href="selection/struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelector"><code>RowSelector</code></a>s
 alternate skipping or selecting rows</li>
 </ul>
-</div></details><h2 id="fields" class="fields section-header">Fields<a 
href="#fields" class="anchor">§</a></h2><span id="structfield.selectors" 
class="structfield section-header"><a href="#structfield.selectors" 
class="anchor field">§</a><code>selectors: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" 
href="selection/struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selecti [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a 
href="#fields" class="anchor">§</a></h2><span id="structfield.selectors" 
class="structfield section-header"><a href="#structfield.selectors" 
class="anchor field">§</a><code>selectors: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" 
href="selection/struct.RowSelector.html" title="struct 
parquet::arrow::arrow_reader::selecti [...]
 <h5 id="panic"><a class="doc-anchor" href="#panic">§</a>Panic</h5>
 <p>Panics if any of the [<code>BooleanArray</code>] contain nulls</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.from_consecutive_ranges" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#118-149">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.from_consecutive_ranges" 
class="fn">from_consecutive_ranges</a>&lt;I: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html";
 title="trait core::iter::tr [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.from_consecutive_ranges" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#125-156">source</a><h4
 class="code-header">pub fn <a href="#method.from_consecutive_ranges" 
class="fn">from_consecutive_ranges</a>&lt;I: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html";
 title="trait core::iter::traits::i [...]
     ranges: I,
     total_rows: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>,
 ) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a <a 
href="selection/struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>
 from an iterator of consecutive ranges to keep</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.scan_ranges" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#158-205">source</a><h4
 class="code-header">pub fn <a href="#method.scan_ranges" 
class="fn">scan_ranges</a>(&amp;self, page_locations: &amp;[<a class="struct" 
href="../../format/struct.PageLocation.html" title="struct 
parquet::format::PageLocation">PageLocation</a>]) -&gt; <a class="stru [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.scan_ranges" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#165-212">source</a><h4
 class="code-header">pub fn <a href="#method.scan_ranges" 
class="fn">scan_ranges</a>(&amp;self, page_locations: &amp;[<a class="struct" 
href="../../format/struct.PageLocation.html" title="struct 
parquet::format::PageLocation">PageLocation</a>]) -&gt; <a class="stru [...]
 <p>This is useful for determining what byte ranges to fetch from underlying 
storage</p>
 <p>Note: this method does not make any effort to combine consecutive ranges, 
nor coalesce
 ranges that are close together. This is instead delegated to the IO subsystem 
to optimise,
 e.g. <a 
href="object_store::ObjectStore::get_ranges"><code>ObjectStore::get_ranges</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.split_off" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#208-243">source</a><h4
 class="code-header">pub fn <a href="#method.split_off" 
class="fn">split_off</a>(&amp;mut self, row_count: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Sp [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.and_then" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#266-327">source</a><h4
 class="code-header">pub fn <a href="#method.and_then" 
class="fn">and_then</a>(&amp;self, other: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;Self</a>)
 -&gt; Self</h4></section></summary><div class="docblock"><p>retur [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.split_off" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#215-250">source</a><h4
 class="code-header">pub fn <a href="#method.split_off" 
class="fn">split_off</a>(&amp;mut self, row_count: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Sp [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.and_then" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#273-334">source</a><h4
 class="code-header">pub fn <a href="#method.and_then" 
class="fn">and_then</a>(&amp;self, other: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;Self</a>)
 -&gt; Self</h4></section></summary><div class="docblock"><p>retur [...]
 input <a href="selection/struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>s.</p>
 <p>This is equivalent to the logical <code>AND</code> / conjunction of the two
 selections.</p>
@@ -59,21 +66,21 @@ returned: NNNNNNNNNNNNYYYYYNNNNYYYYYYYYYYYYYNNNYYNNN
 </code></pre></div><h5 id="panics"><a class="doc-anchor" 
href="#panics">§</a>Panics</h5>
 <p>Panics if <code>other</code> does not have a length equal to the number of 
rows selected
 by this RowSelection</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.intersection" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#335-337">source</a><h4
 class="code-header">pub fn <a href="#method.intersection" 
class="fn">intersection</a>(&amp;self, other: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;Self</a>)
 -&gt; Self</h4></section></summary><div class="docblo [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.intersection" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#342-344">source</a><h4
 class="code-header">pub fn <a href="#method.intersection" 
class="fn">intersection</a>(&amp;self, other: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.reference.html";>&amp;Self</a>)
 -&gt; Self</h4></section></summary><div class="docblo [...]
 For example:
 self:      NNYYYYNNYYNYN
 other:     NYNNNNNNY</p>
 <p>returned:  NNNNNNNNYYNYN</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.selects_any" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#340-342">source</a><h4
 class="code-header">pub fn <a href="#method.selects_any" 
class="fn">selects_any</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></h4></section></summary><div
 class="docblock"><p>Returns <code>true< [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.trim" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#345-350">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.trim" 
class="fn">trim</a>(self) -&gt; Self</h4></section></summary><div 
class="docblock"><p>Trims this <a href="selection/struct.RowSelection.html" 
title="struct parquet::arrow::arrow_reader::selection::RowSelection"><co [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.offset" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#353-390">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.offset" 
class="fn">offset</a>(self, offset: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Applies an offse 
[...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.limit" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#393-410">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.limit" 
class="fn">limit</a>(self, limit: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Limit this <a 
href=" [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.iter" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#414-416">source</a><h4
 class="code-header">pub fn <a href="#method.iter" 
class="fn">iter</a>(&amp;self) -&gt; impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html";
 title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = 
[...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.selects_any" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#347-349">source</a><h4
 class="code-header">pub fn <a href="#method.selects_any" 
class="fn">selects_any</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></h4></section></summary><div
 class="docblock"><p>Returns <code>true< [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.trim" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#352-357">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.trim" 
class="fn">trim</a>(self) -&gt; Self</h4></section></summary><div 
class="docblock"><p>Trims this <a href="selection/struct.RowSelection.html" 
title="struct parquet::arrow::arrow_reader::selection::RowSelection"><co [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.offset" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#360-397">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.offset" 
class="fn">offset</a>(self, offset: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Applies an offse 
[...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.limit" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#400-417">source</a><h4
 class="code-header">pub(crate) fn <a href="#method.limit" 
class="fn">limit</a>(self, limit: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Limit this <a 
href=" [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.iter" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#421-423">source</a><h4
 class="code-header">pub fn <a href="#method.iter" 
class="fn">iter</a>(&amp;self) -&gt; impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html";
 title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = 
[...]
 <a href="selection/struct.RowSelection.html" title="struct 
parquet::arrow::arrow_reader::selection::RowSelection"><code>RowSelection</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.row_count" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#419-421">source</a><h4
 class="code-header">pub fn <a href="#method.row_count" 
class="fn">row_count</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a></h4></section></summary><div
 class="docblock"><p>Returns the number of s [...]
-</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a
 href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 class [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.row_count" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#426-428">source</a><h4
 class="code-header">pub fn <a href="#method.row_count" 
class="fn">row_count</a>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a></h4></section></summary><div
 class="docblock"><p>Returns the number of s [...]
+</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#99">source</a><a
 href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 class [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
-sufficient, and should not be overridden without very good 
reason.</div></details></div></details><section id="impl-Eq-for-RowSelection" 
class="impl"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a
 href="#impl-Eq-for-RowSelection" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"; title="trait 
core::cmp::Eq">Eq</a> for <a class="struct" href="selection/ [...]
+sufficient, and should not be overridden without very good 
reason.</div></details></div></details><section id="impl-Eq-for-RowSelection" 
class="impl"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#99">source</a><a
 href="#impl-Eq-for-RowSelection" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"; title="trait 
core::cmp::Eq">Eq</a> for <a class="struct" href="selection/ [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210";>source</a><a
 href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a 
href="https:/ [...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow_mut" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217";>source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href= [...]
diff --git a/parquet/arrow/arrow_reader/struct.RowSelector.html 
b/parquet/arrow/arrow_reader/struct.RowSelector.html
index 668d8fa406c..c85f5dd288f 100644
--- a/parquet/arrow/arrow_reader/struct.RowSelector.html
+++ b/parquet/arrow/arrow_reader/struct.RowSelector.html
@@ -7,7 +7,7 @@ scanning a parquet file</p>
 </div><span id="structfield.skip" class="structfield section-header"><a 
href="#structfield.skip" class="anchor field">§</a><code>skip: <a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></code></span><div
 class="docblock"><p>If true, skip <code>row_count</code> rows</p>
 </div><h2 id="implementations" class="section-header">Implementations<a 
href="#implementations" class="anchor">§</a></h2><div 
id="implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-RowSelector" class="impl"><a class="src 
rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#35-51">source</a><a
 href="#impl-RowSelector" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="selection/struct.RowSelector.ht [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.skip" class="method"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#45-50">source</a><h4
 class="code-header">pub fn <a href="#method.skip" 
class="fn">skip</a>(row_count: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>) 
-&gt; Self</h4></section></summary><div class="docblock"><p>Skip 
<code>row_count</code> rows</p>
-</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-RowSelector" class="impl"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
 href="#impl-Clone-for-RowSelector" class="anchor">§</a><h3 class=" [...]
+</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Clone-for-RowSelector" class="impl"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
 href="#impl-Clone-for-RowSelector" class="anchor">§</a><h3 class=" [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263";>source</a></span><a
 href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne";
 class= [...]
 sufficient, and should not be overridden without very good 
reason.</div></details></div></details><section id="impl-Copy-for-RowSelector" 
class="impl"><a class="src rightside" 
href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#26">source</a><a
 href="#impl-Copy-for-RowSelector" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html"; 
title="trait core::marker::Copy">Copy</a> for <a class="struct" hr [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
diff --git a/src/parquet/arrow/arrow_reader/selection.rs.html 
b/src/parquet/arrow/arrow_reader/selection.rs.html
index be4caf9bb45..a767d76a66a 100644
--- a/src/parquet/arrow/arrow_reader/selection.rs.html
+++ b/src/parquet/arrow/arrow_reader/selection.rs.html
@@ -1201,6 +1201,19 @@
 <a href="#1201" id="1201">1201</a>
 <a href="#1202" id="1202">1202</a>
 <a href="#1203" id="1203">1203</a>
+<a href="#1204" id="1204">1204</a>
+<a href="#1205" id="1205">1205</a>
+<a href="#1206" id="1206">1206</a>
+<a href="#1207" id="1207">1207</a>
+<a href="#1208" id="1208">1208</a>
+<a href="#1209" id="1209">1209</a>
+<a href="#1210" id="1210">1210</a>
+<a href="#1211" id="1211">1211</a>
+<a href="#1212" id="1212">1212</a>
+<a href="#1213" id="1213">1213</a>
+<a href="#1214" id="1214">1214</a>
+<a href="#1215" id="1215">1215</a>
+<a href="#1216" id="1216">1216</a>
 </pre></div><pre class="rust"><code><span class="comment">// Licensed to the 
Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -1284,6 +1297,13 @@
 ///
 /// let actual: Vec&lt;RowSelector&gt; = selection.into();
 /// assert_eq!(actual, expected);
+///
+/// // you can also create a selection from consecutive ranges
+/// let ranges = vec![5..10, 10..15];
+/// let selection =
+///   RowSelection::from_consecutive_ranges(ranges.into_iter(), 20);
+/// let actual: Vec&lt;RowSelector&gt; = selection.into();
+/// assert_eq!(actual, expected);
 /// ```
 ///
 /// A [`RowSelection`] maintains the following invariants:
@@ -1318,7 +1338,7 @@
     }
 
     <span class="doccomment">/// Creates a [`RowSelection`] from an iterator 
of consecutive ranges to keep
-    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span 
class="kw">fn </span>from_consecutive_ranges&lt;I: Iterator&lt;Item = 
Range&lt;usize&gt;&gt;&gt;(
+    </span><span class="kw">pub fn </span>from_consecutive_ranges&lt;I: 
Iterator&lt;Item = Range&lt;usize&gt;&gt;&gt;(
         ranges: I,
         total_rows: usize,
     ) -&gt; <span class="self">Self </span>{
@@ -2339,7 +2359,7 @@
     }
 
     <span class="attr">#[test]
-    </span><span class="kw">fn </span>test_empty_ranges() {
+    </span><span class="kw">fn </span>test_from_ranges() {
         <span class="kw">let </span>ranges = [<span 
class="number">1</span>..<span class="number">3</span>, <span 
class="number">4</span>..<span class="number">6</span>, <span 
class="number">6</span>..<span class="number">6</span>, <span 
class="number">8</span>..<span class="number">8</span>, <span 
class="number">9</span>..<span class="number">10</span>];
         <span class="kw">let </span>selection = 
RowSelection::from_consecutive_ranges(ranges.into_iter(), <span 
class="number">10</span>);
         <span class="macro">assert_eq!</span>(
@@ -2352,7 +2372,13 @@
                 RowSelector::skip(<span class="number">3</span>),
                 RowSelector::select(<span class="number">1</span>)
             ]
-        )
+        );
+
+        <span class="kw">let </span>out_of_order_ranges = [<span 
class="number">1</span>..<span class="number">3</span>, <span 
class="number">8</span>..<span class="number">10</span>, <span 
class="number">4</span>..<span class="number">7</span>];
+        <span class="kw">let </span>result = std::panic::catch_unwind(|| {
+            
RowSelection::from_consecutive_ranges(out_of_order_ranges.into_iter(), <span 
class="number">10</span>)
+        });
+        <span class="macro">assert!</span>(result.is_err());
     }
 
     <span class="attr">#[test]

Reply via email to