You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by gi...@apache.org on 2023/11/29 21:52:34 UTC

(arrow-rs) branch asf-site updated: deploy: 6d4b8bbad95c7e4fec0c4f1fb755ad7a1c542983

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 b9307e6a2b deploy: 6d4b8bbad95c7e4fec0c4f1fb755ad7a1c542983
b9307e6a2b is described below

commit b9307e6a2bcd57d3dcdae8045b744882b9f74c60
Author: tustvold <tu...@users.noreply.github.com>
AuthorDate: Wed Nov 29 21:52:28 2023 +0000

    deploy: 6d4b8bbad95c7e4fec0c4f1fb755ad7a1c542983
---
 arrow/datatypes/struct.Field.html                  |   2 +-
 arrow/datatypes/struct.Fields.html                 |  60 ++-
 arrow/datatypes/struct.UnionFields.html            |  30 +-
 arrow_file_to_stream/fn.main.html                  |   2 +-
 ...n.cdata_integration_export_batch_from_json.html |   2 +-
 ....cdata_integration_export_schema_from_json.html |   2 +-
 ...tegration_import_batch_and_compare_to_json.html |   2 +-
 ...egration_import_schema_and_compare_to_json.html |   2 +-
 arrow_integration_testing/fn.compare_batches.html  |   2 +-
 arrow_integration_testing/fn.open_json_file.html   |   2 +-
 arrow_integration_testing/fn.read_gzip_json.html   |   2 +-
 arrow_integration_testing/struct.ArrowFile.html    |   4 +-
 arrow_json_integration_test/fn.arrow_to_json.html  |   2 +-
 arrow_json_integration_test/fn.json_to_arrow.html  |   2 +-
 arrow_json_integration_test/fn.main.html           |   2 +-
 arrow_json_integration_test/fn.validate.html       |   2 +-
 arrow_schema/field/struct.Field.html               |   2 +-
 arrow_schema/fields/index.html                     |   2 +-
 arrow_schema/fields/struct.Fields.html             |  58 ++-
 arrow_schema/fields/struct.UnionFields.html        |  30 +-
 arrow_schema/struct.Field.html                     |   2 +-
 arrow_schema/struct.Fields.html                    |  58 ++-
 arrow_schema/struct.UnionFields.html               |  30 +-
 arrow_stream_to_file/fn.main.html                  |   2 +-
 help.html                                          |   2 +-
 index.html                                         |   2 +-
 .../selection/struct.RowSelection.html             |   2 +-
 .../arrow/arrow_reader/struct.RowSelection.html    |   2 +-
 parquet/basic/enum.Compression.html                |   2 +-
 parquet/basic/enum.ConvertedType.html              |   2 +-
 parquet/basic/enum.Encoding.html                   |   2 +-
 parquet/basic/enum.SortOrder.html                  |   2 +-
 parquet/basic/enum.Type.html                       |   2 +-
 parquet/data_type/struct.ByteArray.html            |   8 +-
 parquet/data_type/struct.FixedLenByteArray.html    |   8 +-
 parquet/errors/enum.ParquetError.html              |   2 +-
 .../struct.SerializedFileReader.html               |   2 +-
 parquet/file/statistics/enum.Statistics.html       |   2 +-
 .../file/statistics/struct.ValueStatistics.html    |   2 +-
 parquet/format/struct.BoundaryOrder.html           |   2 +-
 parquet/format/struct.CompressionCodec.html        |   2 +-
 parquet/format/struct.ConvertedType.html           |   2 +-
 parquet/format/struct.Encoding.html                |   2 +-
 parquet/format/struct.FieldRepetitionType.html     |   2 +-
 parquet/format/struct.PageType.html                |   2 +-
 parquet/format/struct.Type.html                    |   2 +-
 parquet/record/api/enum.Field.html                 |   2 +-
 parquet/record/api/struct.Row.html                 |   4 +-
 parquet/record/enum.Field.html                     |   2 +-
 parquet/record/struct.Row.html                     |   4 +-
 parquet/schema/types/struct.ColumnPath.html        |   2 +-
 search-index.js                                    |   6 +-
 settings.html                                      |   2 +-
 src/arrow_schema/fields.rs.html                    | 464 ++++++++++++++++++++-
 trait.impl/core/clone/trait.Clone.js               |   2 +-
 trait.impl/core/cmp/trait.Eq.js                    |   2 +-
 trait.impl/core/cmp/trait.Ord.js                   |   2 +-
 trait.impl/core/cmp/trait.PartialEq.js             |   2 +-
 trait.impl/core/cmp/trait.PartialOrd.js            |   2 +-
 trait.impl/core/convert/trait.From.js              |   2 +-
 trait.impl/core/convert/trait.TryFrom.js           |   2 +-
 trait.impl/core/default/trait.Default.js           |   2 +-
 trait.impl/core/fmt/trait.Debug.js                 |   2 +-
 trait.impl/core/fmt/trait.Display.js               |   2 +-
 trait.impl/core/hash/trait.Hash.js                 |   2 +-
 .../core/iter/traits/iterator/trait.Iterator.js    |   2 +-
 trait.impl/core/marker/trait.Copy.js               |   2 +-
 trait.impl/core/marker/trait.StructuralEq.js       |   2 +-
 .../core/marker/trait.StructuralPartialEq.js       |   2 +-
 trait.impl/core/str/traits/trait.FromStr.js        |   2 +-
 .../file/statistics/struct.ValueStatistics.js      |   2 +-
 type.impl/parquet/format/struct.KeyValue.js        |   2 +-
 72 files changed, 721 insertions(+), 161 deletions(-)

diff --git a/arrow/datatypes/struct.Field.html b/arrow/datatypes/struct.Field.html
index 35c671f244..e274036279 100644
--- a/arrow/datatypes/struct.Field.html
+++ b/arrow/datatypes/struct.Field.html
@@ -138,7 +138,7 @@
 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.Field.html" title="struct arrow::datatypes::Field">Field</a>, &lt;__D as <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;&gt;::<a class="associatedtype" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize [...]
     __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Disp [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="struct.Field.html" title="struct arrow::datatypes::Field">Field</a>&gt;,</span></h4></section></summary><div class='docblock'>Extends a collection with the contents of an iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.Extend.html#tyme [...]
-</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="../../src/arrow_ipc/convert.rs.html#82">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(field: <a class="struct" href="../../arrow_ipc/gen/Schema/struct.Field.html" title="struct arrow_ipc [...]
+</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="../../src/arrow_ipc/convert.rs.html#82">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(field: <a class="struct" href="../../arrow_ipc/gen/Schema/struct.Field.html" title="struct arrow_ipc [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="struct.Field.html" title="struct arrow::datatypes::Field">Field</a>&gt;,</span></h4></section></summary><div class='docblock'>Creates a value from an iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.FromIterator.html#tymethod.from_iter" [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="toggle met [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
diff --git a/arrow/datatypes/struct.Fields.html b/arrow/datatypes/struct.Fields.html
index 54c75e4bb2..705ad0600d 100644
--- a/arrow/datatypes/struct.Fields.html
+++ b/arrow/datatypes/struct.Fields.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="A cheaply cloneable, owned slice of `FieldRef`"><title>Fields in arrow::datatypes - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigi [...]
+<!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="A cheaply cloneable, owned slice of `FieldRef`"><title>Fields in arrow::datatypes - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigi [...]
 <p>Similar to <code>Arc&lt;Vec&lt;FieldRef&gt;&gt;</code> or <code>Arc&lt;[FieldRef]&gt;</code></p>
 <p>Can be constructed in a number of ways</p>
 
@@ -20,13 +20,45 @@ builder.push(Field::new(<span class="string">&quot;b&quot;</span>, DataType::Boo
 <span class="kw">let </span><span class="kw-2">mut </span>builder = SchemaBuilder::from(<span class="kw-2">&amp;</span>fields);
 builder.remove(<span class="number">0</span>);
 <span class="kw">let </span>new = builder.finish().fields;</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync:: [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#74">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.find" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#81">source</a><h4 class="code-header">pub fn <a href="#method.find" class="fn">find</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core:: [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.contains" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#91">source</a><h4 class="code-header">pub fn <a href="#method.contains" class="fn">contains</a>(&amp;self, other: &amp;<a class="struct" href="struct.Fields.html" title="struct arrow::datatypes::Fields">Fields</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">boo [...]
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync:: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#75">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.find" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#82">source</a><h4 class="code-header">pub fn <a href="#method.find" class="fn">find</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core:: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.contains" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#92">source</a><h4 class="code-header">pub fn <a href="#method.contains" class="fn">contains</a>(&amp;self, other: &amp;<a class="struct" href="struct.Fields.html" title="struct arrow::datatypes::Fields">Fields</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">boo [...]
 <p>In particular returns true if both have the same number of fields, and <a href="struct.Field.html#method.contains" title="method arrow::datatypes::Field::contains"><code>Field::contains</code></a>
 for each field across self and other</p>
 <p>In other words, any record that conforms to <code>other</code> should also conform to <code>self</code></p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.filter_leaves" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#139">source</a><h4 class="code-header">pub fn <a href="#method.filter_leaves" class="fn">filter_leaves</a>&lt;F&gt;(&amp;self, filter: F) -&gt; <a class="struct" href="struct.Fields.html" title="struct arrow::datatypes::Fields">Fields</a><span class="where fmt-newline">where
+    F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, &amp;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="struct.Field.html" title="struct arrow::datatypes::Field">Field</a>&gt;) -&gt; <a cla [...]
+<p>Performs a depth-first scan of <a href="struct.Fields.html" title="struct arrow::datatypes::Fields"><code>Fields</code></a> invoking <code>filter</code> for each <a href="type.FieldRef.html" title="type arrow::datatypes::FieldRef"><code>FieldRef</code></a>
+containing no child <a href="type.FieldRef.html" title="type arrow::datatypes::FieldRef"><code>FieldRef</code></a>, a leaf field, along with a count of the number
+of such leaves encountered so far. Only <a href="type.FieldRef.html" title="type arrow::datatypes::FieldRef"><code>FieldRef</code></a> for which <code>filter</code>
+returned <code>true</code> will be included in the result.</p>
+<p>This can therefore be used to select a subset of fields from nested types
+such as <a href="enum.DataType.html#variant.Struct" title="variant arrow::datatypes::DataType::Struct"><code>DataType::Struct</code></a> or <a href="enum.DataType.html#variant.List" title="variant arrow::datatypes::DataType::List"><code>DataType::List</code></a>.</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>fields = Fields::from(<span class="macro">vec!</span>[
+    Field::new(<span class="string">&quot;a&quot;</span>, DataType::Int32, <span class="bool-val">true</span>), <span class="comment">// Leaf 0
+    </span>Field::new(<span class="string">&quot;b&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+        Field::new(<span class="string">&quot;c&quot;</span>, DataType::Float32, <span class="bool-val">false</span>), <span class="comment">// Leaf 1
+        </span>Field::new(<span class="string">&quot;d&quot;</span>, DataType::Float64, <span class="bool-val">false</span>), <span class="comment">// Leaf 2
+        </span>Field::new(<span class="string">&quot;e&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+            Field::new(<span class="string">&quot;f&quot;</span>, DataType::Int32, <span class="bool-val">false</span>),   <span class="comment">// Leaf 3
+            </span>Field::new(<span class="string">&quot;g&quot;</span>, DataType::Float16, <span class="bool-val">false</span>), <span class="comment">// Leaf 4
+        </span>])), <span class="bool-val">true</span>),
+    ])), <span class="bool-val">false</span>)
+]);
+<span class="kw">let </span>filtered = fields.filter_leaves(|idx, <span class="kw">_</span>| [<span class="number">0</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>].contains(<span class="kw-2">&amp;</span>idx));
+<span class="kw">let </span>expected = Fields::from(<span class="macro">vec!</span>[
+    Field::new(<span class="string">&quot;a&quot;</span>, DataType::Int32, <span class="bool-val">true</span>),
+    Field::new(<span class="string">&quot;b&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+        Field::new(<span class="string">&quot;d&quot;</span>, DataType::Float64, <span class="bool-val">false</span>),
+        Field::new(<span class="string">&quot;e&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+            Field::new(<span class="string">&quot;f&quot;</span>, DataType::Int32, <span class="bool-val">false</span>),
+            Field::new(<span class="string">&quot;g&quot;</span>, DataType::Float16, <span class="bool-val">false</span>),
+        ])), <span class="bool-val">true</span>),
+    ])), <span class="bool-val">false</span>)
+]);
+<span class="macro">assert_eq!</span>(filtered, expected);</code></pre></div>
 </div></details></div></details></div><h2 id="deref-methods-%5BArc%3CField%3E%5D" class="small-section-header"><span>Methods from <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = [<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="struct.Field.html" title="struct arrow::datatypes::Field"> [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_bytes" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/ascii/ascii_char.rs.html#555">source</a><h4 class="code-header">pub fn <a href="#method.as_bytes" class="fn">as_bytes</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></ [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><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/slice/mod.rs.html#142">source</a></span><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize [...]
@@ -1117,26 +1149,26 @@ given separator between each.</p>
 <h5 id="examples-59"><a href="#examples-59">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>([<span class="string">&quot;hello&quot;</span>, <span class="string">&quot;world&quot;</span>].connect(<span class="string">&quot; &quot;</span>), <span class="string">&quot;hello world&quot;</span>);
 <span class="macro">assert_eq!</span>([[<span class="number">1</span>, <span class="number">2</span>], [<span class="number">3</span>, <span class="number">4</span>]].connect(<span class="kw-2">&amp;</span><span class="number">0</span>), [<span class="number">1</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
-</div></details></div><h2 id="trait-implementations" class="small-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-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#56">source</a><a href="#impl-Clone-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href= [...]
+</div></details></div><h2 id="trait-implementations" class="small-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-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#57">source</a><a href="#impl-Clone-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href= [...]
     __deserializer: __D
 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.Fields.html" title="struct arrow::datatypes::Fields">Fields</a>, &lt;__D as <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;&gt;::<a class="associatedtype" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserial [...]
-    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
-    T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="struct.Field.html" title="struct arrow::datatypes::Field">Field</a>&gt;&gt;,</span></h4></section></summary><div class='docblock'>Creates a va [...]
-    T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="struct.Field.html" title="struct arrow::datatypes::Field">Field</a>&gt;,</span></h4></section></summary><div class='docblock'>Creates a value from an iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.FromIterator.html#tymethod.from_iter" [...]
+    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
+    T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="struct.Field.html" title="struct arrow::datatypes::Field">Field</a>&gt;&gt;,</span></h4></section></summary><div class='docblock'>Creates a va [...]
+    T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="struct.Field.html" title="struct arrow::datatypes::Field">Field</a>&gt;,</span></h4></section></summary><div class='docblock'>Creates a value from an iterator. <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.FromIterator.html#tymethod.from_iter" [...]
     __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="toggle m [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl"><span class="rightside"><span class= [...]
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#56">source</a><a href="#impl-PartialOrd-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp: [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#57">source</a><a href="#impl-PartialOrd-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp: [...]
 operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" 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#1155">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn  [...]
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#57">source</a><a href="#impl-Serialize-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Ser [...]
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#58">source</a><a href="#impl-Serialize-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Ser [...]
     &amp;self,
     __serializer: __S
 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&lt;__S as <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>&gt;::<a class="associatedtype" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, &lt;__S as <a class="trait" href="h [...]
-    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fi [...]
+    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fi [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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>,</span></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/arrow/datatypes/struct.UnionFields.html b/arrow/datatypes/struct.UnionFields.html
index ea6f473fd4..0b306f95c6 100644
--- a/arrow/datatypes/struct.UnionFields.html
+++ b/arrow/datatypes/struct.UnionFields.html
@@ -1,6 +1,6 @@
-<!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="A cheaply cloneable, owned collection of `FieldRef` and their corresponding type ids"><title>UnionFields in arrow::datatypes - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="prel [...]
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>, <a class="struct" hr [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#224-228">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>&lt;F, T&gt;(type_ids: T, fields: F) -&gt; <a class="struct" href="struct.UnionFields.html" title="struct arrow::datatypes::UnionFields">UnionFields</a><span class="where fmt-newline">where
+<!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="A cheaply cloneable, owned collection of `FieldRef` and their corresponding type ids"><title>UnionFields in arrow::datatypes - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="prel [...]
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>, <a class="struct" hr [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#327-331">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>&lt;F, T&gt;(type_ids: T, fields: F) -&gt; <a class="struct" href="struct.UnionFields.html" title="struct arrow::datatypes::UnionFields">UnionFields</a><span class="where fmt-newline">where
     F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,
     &lt;F as <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" title="type core::iter::traits::collect::IntoIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"  [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Create a new <a href="struct.UnionFields.html" title="struct arrow::datatypes::UnionFields"><code>UnionFields</code></a> from a <a href="struct [...]
@@ -17,30 +17,30 @@
         Field::new(<span class="string">&quot;field3&quot;</span>, DataType::Utf8, <span class="bool-val">false</span>),
     ],
 );</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#248">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#255">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</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 fields in this <a href="struct.UnionFields. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#260">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</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</code> if this is empty</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#267">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 class="primitive" h [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#351">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#358">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</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 fields in this <a href="struct.UnionFields. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#363">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</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</code> if this is empty</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#370">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 class="primitive" h [...]
 <p>Note: the iteration order is not guaranteed</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#190">source</a><a href="#impl-Clone-for-UnionFields" class="anchor">§</a><h3 class="code-header"> [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#293">source</a><a href="#impl-Clone-for-UnionFields" class="anchor">§</a><h3 class="code-header"> [...]
     __deserializer: __D
 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.UnionFields.html" title="struct arrow::datatypes::UnionFields">UnionFields</a>, &lt;__D as <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;&gt;::<a class="associatedtype" href="https://docs.rs/serde/1.0.193/serde/de [...]
-    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
-    T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = (<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="struct.Field.html" title="struct arrow::datatypes [...]
+    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
+    T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = (<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="struct.Field.html" title="struct arrow::datatypes [...]
     __H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="toggle m [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl"><span class="rightside"><span class= [...]
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#190">source</a><a href="#impl-PartialOrd-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#293">source</a><a href="#impl-PartialOrd-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait [...]
 operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" 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#1155">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn  [...]
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#191">source</a><a href="#impl-Serialize-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/se [...]
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#294">source</a><a href="#impl-Serialize-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/se [...]
     &amp;self,
     __serializer: __S
 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&lt;__S as <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>&gt;::<a class="associatedtype" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, &lt;__S as <a class="trait" href="h [...]
-    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_sche [...]
+    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_sche [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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>,</span></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/arrow_file_to_stream/fn.main.html b/arrow_file_to_stream/fn.main.html
index c803f90288..0b321a8820 100644
--- a/arrow_file_to_stream/fn.main.html
+++ b/arrow_file_to_stream/fn.main.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="API documentation for the Rust `main` fn in crate `arrow_file_to_stream`."><title>main in arrow_file_to_stream - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" ty [...]
\ 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="API documentation for the Rust `main` fn in crate `arrow_file_to_stream`."><title>main in arrow_file_to_stream - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" ty [...]
\ No newline at end of file
diff --git a/arrow_integration_testing/fn.cdata_integration_export_batch_from_json.html b/arrow_integration_testing/fn.cdata_integration_export_batch_from_json.html
index 14c7f1078a..92199ee0d4 100644
--- a/arrow_integration_testing/fn.cdata_integration_export_batch_from_json.html
+++ b/arrow_integration_testing/fn.cdata_integration_export_batch_from_json.html
@@ -2,4 +2,4 @@
     c_json_name: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const </a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>,
     batch_num: <a class="type" href="https://doc.rust-lang.org/nightly/core/ffi/type.c_int.html" title="type core::ffi::c_int">c_int</a>,
     out: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="struct" href="../arrow_data/ffi/struct.FFI_ArrowArray.html" title="struct arrow_data::ffi::FFI_ArrowArray">FFI_ArrowArray</a>
-) -&gt; <a class="type" href="../arrow/error/type.Result.html" title="type arrow::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
+) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_integration_testing/fn.cdata_integration_export_schema_from_json.html b/arrow_integration_testing/fn.cdata_integration_export_schema_from_json.html
index e96bb39574..2b61307758 100644
--- a/arrow_integration_testing/fn.cdata_integration_export_schema_from_json.html
+++ b/arrow_integration_testing/fn.cdata_integration_export_schema_from_json.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 `cdata_integration_export_schema_from_json` fn in crate `arrow_integration_testing`."><title>cdata_integration_export_schema_from_json in arrow_integration_testing - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.fil [...]
     c_json_name: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const </a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>,
     out: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="struct" href="../arrow_schema/ffi/struct.FFI_ArrowSchema.html" title="struct arrow_schema::ffi::FFI_ArrowSchema">FFI_ArrowSchema</a>
-) -&gt; <a class="type" href="../arrow/error/type.Result.html" title="type arrow::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
+) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_integration_testing/fn.cdata_integration_import_batch_and_compare_to_json.html b/arrow_integration_testing/fn.cdata_integration_import_batch_and_compare_to_json.html
index b3b38529d9..b99f5bd839 100644
--- a/arrow_integration_testing/fn.cdata_integration_import_batch_and_compare_to_json.html
+++ b/arrow_integration_testing/fn.cdata_integration_import_batch_and_compare_to_json.html
@@ -2,4 +2,4 @@
     c_json_name: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const </a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>,
     batch_num: <a class="type" href="https://doc.rust-lang.org/nightly/core/ffi/type.c_int.html" title="type core::ffi::c_int">c_int</a>,
     c_array: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="struct" href="../arrow_data/ffi/struct.FFI_ArrowArray.html" title="struct arrow_data::ffi::FFI_ArrowArray">FFI_ArrowArray</a>
-) -&gt; <a class="type" href="../arrow/error/type.Result.html" title="type arrow::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
+) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_integration_testing/fn.cdata_integration_import_schema_and_compare_to_json.html b/arrow_integration_testing/fn.cdata_integration_import_schema_and_compare_to_json.html
index 42bbf86ccc..e06e2c89b5 100644
--- a/arrow_integration_testing/fn.cdata_integration_import_schema_and_compare_to_json.html
+++ b/arrow_integration_testing/fn.cdata_integration_import_schema_and_compare_to_json.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 `cdata_integration_import_schema_and_compare_to_json` fn in crate `arrow_integration_testing`."><title>cdata_integration_import_schema_and_compare_to_json in arrow_integration_testing - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin [...]
     c_json_name: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*const </a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>,
     c_schema: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="struct" href="../arrow_schema/ffi/struct.FFI_ArrowSchema.html" title="struct arrow_schema::ffi::FFI_ArrowSchema">FFI_ArrowSchema</a>
-) -&gt; <a class="type" href="../arrow/error/type.Result.html" title="type arrow::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
+) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_integration_testing/fn.compare_batches.html b/arrow_integration_testing/fn.compare_batches.html
index 680f763541..3388c12a89 100644
--- a/arrow_integration_testing/fn.compare_batches.html
+++ b/arrow_integration_testing/fn.compare_batches.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="API documentation for the Rust `compare_batches` fn in crate `arrow_integration_testing`."><title>compare_batches in arrow_integration_testing - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"> [...]
\ 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="API documentation for the Rust `compare_batches` fn in crate `arrow_integration_testing`."><title>compare_batches in arrow_integration_testing - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"> [...]
\ No newline at end of file
diff --git a/arrow_integration_testing/fn.open_json_file.html b/arrow_integration_testing/fn.open_json_file.html
index aaca274245..6bbe5d1985 100644
--- a/arrow_integration_testing/fn.open_json_file.html
+++ b/arrow_integration_testing/fn.open_json_file.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="API documentation for the Rust `open_json_file` fn in crate `arrow_integration_testing`."><title>open_json_file in arrow_integration_testing - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><l [...]
\ 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="API documentation for the Rust `open_json_file` fn in crate `arrow_integration_testing`."><title>open_json_file in arrow_integration_testing - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><l [...]
\ No newline at end of file
diff --git a/arrow_integration_testing/fn.read_gzip_json.html b/arrow_integration_testing/fn.read_gzip_json.html
index 9618a29f01..ceac298266 100644
--- a/arrow_integration_testing/fn.read_gzip_json.html
+++ b/arrow_integration_testing/fn.read_gzip_json.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="Read gzipped JSON test file"><title>read_gzip_json in arrow_integration_testing - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin hre [...]
+<!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="Read gzipped JSON test file"><title>read_gzip_json in arrow_integration_testing - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin hre [...]
 <p>For example given the input:
 version = <code>0.17.1</code>
 path = <code>generated_union</code></p>
diff --git a/arrow_integration_testing/struct.ArrowFile.html b/arrow_integration_testing/struct.ArrowFile.html
index f1a3c14de8..9f0b81948e 100644
--- a/arrow_integration_testing/struct.ArrowFile.html
+++ b/arrow_integration_testing/struct.ArrowFile.html
@@ -1,8 +1,8 @@
 <!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 `ArrowFile` struct in crate `arrow_integration_testing`."><title>ArrowFile in arrow_integration_testing - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link re [...]
     pub schema: <a class="struct" href="../arrow_schema/schema/struct.Schema.html" title="struct arrow_schema::schema::Schema">Schema</a>,
-    pub(crate) dictionaries: <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>, <a class="struct" href="../arrow_integration_test/struct.ArrowJsonDictionaryBatch.html" title="struct arrow_integration_test::ArrowJsonDictionaryBatch">ArrowJsonDictionaryBatch</a>&gt;,
+    pub(crate) dictionaries: <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>, ArrowJsonDictionaryBatch&gt;,
     pub(crate) arrow_json: <a class="enum" href="https://docs.rs/serde_json/1.0.108/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a>,
-}</code></pre><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.schema" class="structfield small-section-header"><a href="#structfield.schema" class="anchor field">§</a><code>schema: <a class="struct" href="../arrow_schema/schema/struct.Schema.html" title="struct arrow_schema::schema::Schema">Schema</a></code></span><span id="structfield.dictionaries" class="structfield small-section-header"><a href="#structfield.di [...]
+}</code></pre><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.schema" class="structfield small-section-header"><a href="#structfield.schema" class="anchor field">§</a><code>schema: <a class="struct" href="../arrow_schema/schema/struct.Schema.html" title="struct arrow_schema::schema::Schema">Schema</a></code></span><span id="structfield.dictionaries" class="structfield small-section-header"><a href="#structfield.di [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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>,</span></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/arrow_json_integration_test/fn.arrow_to_json.html b/arrow_json_integration_test/fn.arrow_to_json.html
index 364c31859a..bf8eb3d58f 100644
--- a/arrow_json_integration_test/fn.arrow_to_json.html
+++ b/arrow_json_integration_test/fn.arrow_to_json.html
@@ -2,4 +2,4 @@
     arrow_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
     json_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
     verbose: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>
-) -&gt; <a class="type" href="../arrow/error/type.Result.html" title="type arrow::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
+) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_json_integration_test/fn.json_to_arrow.html b/arrow_json_integration_test/fn.json_to_arrow.html
index 442ac5bba0..c3fa7209dc 100644
--- a/arrow_json_integration_test/fn.json_to_arrow.html
+++ b/arrow_json_integration_test/fn.json_to_arrow.html
@@ -2,4 +2,4 @@
     json_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
     arrow_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
     verbose: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>
-) -&gt; <a class="type" href="../arrow/error/type.Result.html" title="type arrow::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
+) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_json_integration_test/fn.main.html b/arrow_json_integration_test/fn.main.html
index 8404ed2033..949e9e85db 100644
--- a/arrow_json_integration_test/fn.main.html
+++ b/arrow_json_integration_test/fn.main.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="API documentation for the Rust `main` fn in crate `arrow_json_integration_test`."><title>main in arrow_json_integration_test - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload [...]
\ 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="API documentation for the Rust `main` fn in crate `arrow_json_integration_test`."><title>main in arrow_json_integration_test - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload [...]
\ No newline at end of file
diff --git a/arrow_json_integration_test/fn.validate.html b/arrow_json_integration_test/fn.validate.html
index 87538a00cb..95dc66bac4 100644
--- a/arrow_json_integration_test/fn.validate.html
+++ b/arrow_json_integration_test/fn.validate.html
@@ -2,4 +2,4 @@
     arrow_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
     json_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
     verbose: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>
-) -&gt; <a class="type" href="../arrow/error/type.Result.html" title="type arrow::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
+) -&gt; Result&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_schema/field/struct.Field.html b/arrow_schema/field/struct.Field.html
index d055905b9d..ab8fe4b528 100644
--- a/arrow_schema/field/struct.Field.html
+++ b/arrow_schema/field/struct.Field.html
@@ -135,7 +135,7 @@ dictionary ID they use</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/arrow_schema/field.rs.html#525-535">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
 <p>Includes the size of <code>Self</code>.</p>
 </div></details></div></details></div><h2 id="trait-implementations" class="small-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-Field" class="impl"><a class="src rightside" href="../../src/arrow_schema/field.rs.html#35">source</a><a href="#impl-Clone-for-Field" class="anchor">§</a><h3 class="code-header">impl <a class= [...]
-    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Disp [...]
+    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Disp [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/arrow_schema/fields/index.html b/arrow_schema/fields/index.html
index d4d4344522..d737641088 100644
--- a/arrow_schema/fields/index.html
+++ b/arrow_schema/fields/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="API documentation for the Rust `fields` mod in crate `arrow_schema`."><title>arrow_schema::fields - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/w [...]
\ 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="API documentation for the Rust `fields` mod in crate `arrow_schema`."><title>arrow_schema::fields - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/w [...]
\ No newline at end of file
diff --git a/arrow_schema/fields/struct.Fields.html b/arrow_schema/fields/struct.Fields.html
index 4bb27e3da7..a2086e744d 100644
--- a/arrow_schema/fields/struct.Fields.html
+++ b/arrow_schema/fields/struct.Fields.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="A cheaply cloneable, owned slice of `FieldRef`"><title>Fields in arrow_schema::fields - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crosso [...]
+<!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="A cheaply cloneable, owned slice of `FieldRef`"><title>Fields in arrow_schema::fields - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crosso [...]
 <p>Similar to <code>Arc&lt;Vec&lt;FieldRef&gt;&gt;</code> or <code>Arc&lt;[FieldRef]&gt;</code></p>
 <p>Can be constructed in a number of ways</p>
 
@@ -20,13 +20,47 @@ builder.push(Field::new(<span class="string">&quot;b&quot;</span>, DataType::Boo
 <span class="kw">let </span><span class="kw-2">mut </span>builder = SchemaBuilder::from(<span class="kw-2">&amp;</span>fields);
 builder.remove(<span class="number">0</span>);
 <span class="kw">let </span>new = builder.finish().fields;</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[<a class="type" href="../field/type.FieldRef.html" title="type arrow_schema::field::FieldRef">FieldRef</a>]&gt;</ [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#74-78">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.find" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#81-83">source</a><h4 class="code-header">pub fn <a href="#method.find" class="fn">find</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum cor [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.contains" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#91-100">source</a><h4 class="code-header">pub fn <a href="#method.contains" class="fn">contains</a>(&amp;self, other: &amp;<a class="struct" href="struct.Fields.html" title="struct arrow_schema::fields::Fields">Fields</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.h [...]
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[<a class="type" href="../field/type.FieldRef.html" title="type arrow_schema::field::FieldRef">FieldRef</a>]&gt;</ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#75-79">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.find" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#82-84">source</a><h4 class="code-header">pub fn <a href="#method.find" class="fn">find</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum cor [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.contains" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#92-101">source</a><h4 class="code-header">pub fn <a href="#method.contains" class="fn">contains</a>(&amp;self, other: &amp;<a class="struct" href="struct.Fields.html" title="struct arrow_schema::fields::Fields">Fields</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.h [...]
 <p>In particular returns true if both have the same number of fields, and <a href="../field/struct.Field.html#method.contains" title="method arrow_schema::field::Field::contains"><code>Field::contains</code></a>
 for each field across self and other</p>
 <p>In other words, any record that conforms to <code>other</code> should also conform to <code>self</code></p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.filter_leaves" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#139-203">source</a><h4 class="code-header">pub fn <a href="#method.filter_leaves" class="fn">filter_leaves</a>&lt;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust- [...]
+    &amp;self,
+    filter: F
+) -&gt; Self</h4></section></summary><div class="docblock"><p>Returns a copy of this <a href="struct.Fields.html" title="struct arrow_schema::fields::Fields"><code>Fields</code></a> containing only those <a href="../field/type.FieldRef.html" title="type arrow_schema::field::FieldRef"><code>FieldRef</code></a> passing a predicate</p>
+<p>Performs a depth-first scan of <a href="struct.Fields.html" title="struct arrow_schema::fields::Fields"><code>Fields</code></a> invoking <code>filter</code> for each <a href="../field/type.FieldRef.html" title="type arrow_schema::field::FieldRef"><code>FieldRef</code></a>
+containing no child <a href="../field/type.FieldRef.html" title="type arrow_schema::field::FieldRef"><code>FieldRef</code></a>, a leaf field, along with a count of the number
+of such leaves encountered so far. Only <a href="../field/type.FieldRef.html" title="type arrow_schema::field::FieldRef"><code>FieldRef</code></a> for which <code>filter</code>
+returned <code>true</code> will be included in the result.</p>
+<p>This can therefore be used to select a subset of fields from nested types
+such as <a href="../datatype/enum.DataType.html#variant.Struct" title="variant arrow_schema::datatype::DataType::Struct"><code>DataType::Struct</code></a> or <a href="../datatype/enum.DataType.html#variant.List" title="variant arrow_schema::datatype::DataType::List"><code>DataType::List</code></a>.</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>fields = Fields::from(<span class="macro">vec!</span>[
+    Field::new(<span class="string">&quot;a&quot;</span>, DataType::Int32, <span class="bool-val">true</span>), <span class="comment">// Leaf 0
+    </span>Field::new(<span class="string">&quot;b&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+        Field::new(<span class="string">&quot;c&quot;</span>, DataType::Float32, <span class="bool-val">false</span>), <span class="comment">// Leaf 1
+        </span>Field::new(<span class="string">&quot;d&quot;</span>, DataType::Float64, <span class="bool-val">false</span>), <span class="comment">// Leaf 2
+        </span>Field::new(<span class="string">&quot;e&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+            Field::new(<span class="string">&quot;f&quot;</span>, DataType::Int32, <span class="bool-val">false</span>),   <span class="comment">// Leaf 3
+            </span>Field::new(<span class="string">&quot;g&quot;</span>, DataType::Float16, <span class="bool-val">false</span>), <span class="comment">// Leaf 4
+        </span>])), <span class="bool-val">true</span>),
+    ])), <span class="bool-val">false</span>)
+]);
+<span class="kw">let </span>filtered = fields.filter_leaves(|idx, <span class="kw">_</span>| [<span class="number">0</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>].contains(<span class="kw-2">&amp;</span>idx));
+<span class="kw">let </span>expected = Fields::from(<span class="macro">vec!</span>[
+    Field::new(<span class="string">&quot;a&quot;</span>, DataType::Int32, <span class="bool-val">true</span>),
+    Field::new(<span class="string">&quot;b&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+        Field::new(<span class="string">&quot;d&quot;</span>, DataType::Float64, <span class="bool-val">false</span>),
+        Field::new(<span class="string">&quot;e&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+            Field::new(<span class="string">&quot;f&quot;</span>, DataType::Int32, <span class="bool-val">false</span>),
+            Field::new(<span class="string">&quot;g&quot;</span>, DataType::Float16, <span class="bool-val">false</span>),
+        ])), <span class="bool-val">true</span>),
+    ])), <span class="bool-val">false</span>)
+]);
+<span class="macro">assert_eq!</span>(filtered, expected);</code></pre></div>
 </div></details></div></details></div><h2 id="deref-methods-%5BFieldRef%5D" class="small-section-header"><span>Methods from <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = [<a class="type" href="../field/type.FieldRef.html" title="type arrow_schema::field::FieldRef">FieldRef</a>]&gt;</span><a href="#deref-methods-%5BFieldRef%5D" class="anchor">§</a></h2><div id="deref-methods-%5BFieldRef [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_bytes" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/ascii/ascii_char.rs.html#555">source</a><h4 class="code-header">pub fn <a href="#method.as_bytes" class="fn">as_bytes</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></ [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><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/slice/mod.rs.html#142">source</a></span><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize [...]
@@ -1117,18 +1151,18 @@ given separator between each.</p>
 <h5 id="examples-59"><a href="#examples-59">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>([<span class="string">&quot;hello&quot;</span>, <span class="string">&quot;world&quot;</span>].connect(<span class="string">&quot; &quot;</span>), <span class="string">&quot;hello world&quot;</span>);
 <span class="macro">assert_eq!</span>([[<span class="number">1</span>, <span class="number">2</span>], [<span class="number">3</span>, <span class="number">4</span>]].connect(<span class="kw-2">&amp;</span><span class="number">0</span>), [<span class="number">1</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
-</div></details></div><h2 id="trait-implementations" class="small-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-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#56">source</a><a href="#impl-Clone-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href= [...]
-    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
+</div></details></div><h2 id="trait-implementations" class="small-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-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#57">source</a><a href="#impl-Clone-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href= [...]
+    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl"><span class="rightside"><span class= [...]
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#56">source</a><a href="#impl-PartialOrd-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp: [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#57">source</a><a href="#impl-PartialOrd-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp: [...]
 operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" 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#1155">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn  [...]
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#57">source</a><a href="#impl-Serialize-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Ser [...]
-    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fi [...]
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#58">source</a><a href="#impl-Serialize-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Ser [...]
+    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Fields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fi [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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>,</span></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/arrow_schema/fields/struct.UnionFields.html b/arrow_schema/fields/struct.UnionFields.html
index 60fe13ec74..878ed18fe0 100644
--- a/arrow_schema/fields/struct.UnionFields.html
+++ b/arrow_schema/fields/struct.UnionFields.html
@@ -1,6 +1,6 @@
-<!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="A cheaply cloneable, owned collection of `FieldRef` and their corresponding type ids"><title>UnionFields in arrow_schema::fields - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel=" [...]
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>, <a class="type" href [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#224-245">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>&lt;F, T&gt;(type_ids: T, fields: F) -&gt; Self<span class="where fmt-newline">where
+<!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="A cheaply cloneable, owned collection of `FieldRef` and their corresponding type ids"><title>UnionFields in arrow_schema::fields - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel=" [...]
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>, <a class="type" href [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#327-348">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>&lt;F, T&gt;(type_ids: T, fields: F) -&gt; Self<span class="where fmt-newline">where
     F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,
     F::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" title="type core::iter::traits::collect::IntoIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="type" href="../field/type.FieldRef.html" title="type arrow_schema::field::FieldRef">FieldRef</a>&gt;,
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Create a new <a href="struct.UnionFields.html" title="struct arrow_schema::fields::UnionFields"><code>UnionFields</code></a> from a <a href="st [...]
@@ -17,25 +17,25 @@
         Field::new(<span class="string">&quot;field3&quot;</span>, DataType::Utf8, <span class="bool-val">false</span>),
     ],
 );</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#248-252">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#255-257">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</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 fields in this <a href="struct.UnionFie [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#260-262">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</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</code> if this is empty</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#267-269">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 class="primitiv [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#351-355">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#358-360">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</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 fields in this <a href="struct.UnionFie [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#363-365">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</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</code> if this is empty</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#370-372">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 class="primitiv [...]
 <p>Note: the iteration order is not guaranteed</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.try_merge" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#274-301">source</a><h4 class="code-header">pub(crate) fn <a href="#method.try_merge" class="fn">try_merge</a>(&amp;mut self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Self</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/resu [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.try_merge" class="method"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#377-404">source</a><h4 class="code-header">pub(crate) fn <a href="#method.try_merge" class="fn">try_merge</a>(&amp;mut self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Self</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/resu [...]
 <p>See <a href="../field/struct.Field.html#method.try_merge" title="method arrow_schema::field::Field::try_merge"><code>Field::try_merge</code></a></p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#190">source</a><a href="#impl-Clone-for-UnionFields" class="anchor">§</a><h3 class="code-header"> [...]
-    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#293">source</a><a href="#impl-Clone-for-UnionFields" class="anchor">§</a><h3 class="code-header"> [...]
+    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl"><span class="rightside"><span class= [...]
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#190">source</a><a href="#impl-PartialOrd-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#293">source</a><a href="#impl-PartialOrd-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait [...]
 operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" 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#1155">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn  [...]
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#191">source</a><a href="#impl-Serialize-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/se [...]
-    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_sche [...]
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_schema/fields.rs.html#294">source</a><a href="#impl-Serialize-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/se [...]
+    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-UnionFields" class="impl"><a class="src rightside" href="../../src/arrow_sche [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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>,</span></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/arrow_schema/struct.Field.html b/arrow_schema/struct.Field.html
index 3ebcaf0275..d9bbdeee0a 100644
--- a/arrow_schema/struct.Field.html
+++ b/arrow_schema/struct.Field.html
@@ -135,7 +135,7 @@ dictionary ID they use</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../src/arrow_schema/field.rs.html#525-535">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
 <p>Includes the size of <code>Self</code>.</p>
 </div></details></div></details></div><h2 id="trait-implementations" class="small-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-Field" class="impl"><a class="src rightside" href="../src/arrow_schema/field.rs.html#35">source</a><a href="#impl-Clone-for-Field" class="anchor">§</a><h3 class="code-header">impl <a class="tr [...]
-    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Disp [...]
+    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Disp [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/arrow_schema/struct.Fields.html b/arrow_schema/struct.Fields.html
index 8385797c43..eabb79b2ce 100644
--- a/arrow_schema/struct.Fields.html
+++ b/arrow_schema/struct.Fields.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="A cheaply cloneable, owned slice of `FieldRef`"><title>Fields in arrow_schema - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href= [...]
+<!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="A cheaply cloneable, owned slice of `FieldRef`"><title>Fields in arrow_schema - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href= [...]
 <p>Similar to <code>Arc&lt;Vec&lt;FieldRef&gt;&gt;</code> or <code>Arc&lt;[FieldRef]&gt;</code></p>
 <p>Can be constructed in a number of ways</p>
 
@@ -20,13 +20,47 @@ builder.push(Field::new(<span class="string">&quot;b&quot;</span>, DataType::Boo
 <span class="kw">let </span><span class="kw-2">mut </span>builder = SchemaBuilder::from(<span class="kw-2">&amp;</span>fields);
 builder.remove(<span class="number">0</span>);
 <span class="kw">let </span>new = builder.finish().fields;</code></pre></div>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[<a class="type" href="field/type.FieldRef.html" title="type arrow_schema::field::FieldRef">FieldRef</a>]&gt;</cod [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#74-78">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.find" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#81-83">source</a><h4 class="code-header">pub fn <a href="#method.find" class="fn">find</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core:: [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.contains" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#91-100">source</a><h4 class="code-header">pub fn <a href="#method.contains" class="fn">contains</a>(&amp;self, other: &amp;<a class="struct" href="fields/struct.Fields.html" title="struct arrow_schema::fields::Fields">Fields</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bo [...]
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[<a class="type" href="field/type.FieldRef.html" title="type arrow_schema::field::FieldRef">FieldRef</a>]&gt;</cod [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#75-79">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.find" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#82-84">source</a><h4 class="code-header">pub fn <a href="#method.find" class="fn">find</a>(&amp;self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core:: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.contains" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#92-101">source</a><h4 class="code-header">pub fn <a href="#method.contains" class="fn">contains</a>(&amp;self, other: &amp;<a class="struct" href="fields/struct.Fields.html" title="struct arrow_schema::fields::Fields">Fields</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bo [...]
 <p>In particular returns true if both have the same number of fields, and <a href="field/struct.Field.html#method.contains" title="method arrow_schema::field::Field::contains"><code>Field::contains</code></a>
 for each field across self and other</p>
 <p>In other words, any record that conforms to <code>other</code> should also conform to <code>self</code></p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.filter_leaves" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#139-203">source</a><h4 class="code-header">pub fn <a href="#method.filter_leaves" class="fn">filter_leaves</a>&lt;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(<a class="primitive" href="https://doc.rust-lan [...]
+    &amp;self,
+    filter: F
+) -&gt; Self</h4></section></summary><div class="docblock"><p>Returns a copy of this <a href="fields/struct.Fields.html" title="struct arrow_schema::fields::Fields"><code>Fields</code></a> containing only those <a href="field/type.FieldRef.html" title="type arrow_schema::field::FieldRef"><code>FieldRef</code></a> passing a predicate</p>
+<p>Performs a depth-first scan of <a href="fields/struct.Fields.html" title="struct arrow_schema::fields::Fields"><code>Fields</code></a> invoking <code>filter</code> for each <a href="field/type.FieldRef.html" title="type arrow_schema::field::FieldRef"><code>FieldRef</code></a>
+containing no child <a href="field/type.FieldRef.html" title="type arrow_schema::field::FieldRef"><code>FieldRef</code></a>, a leaf field, along with a count of the number
+of such leaves encountered so far. Only <a href="field/type.FieldRef.html" title="type arrow_schema::field::FieldRef"><code>FieldRef</code></a> for which <code>filter</code>
+returned <code>true</code> will be included in the result.</p>
+<p>This can therefore be used to select a subset of fields from nested types
+such as <a href="datatype/enum.DataType.html#variant.Struct" title="variant arrow_schema::datatype::DataType::Struct"><code>DataType::Struct</code></a> or <a href="datatype/enum.DataType.html#variant.List" title="variant arrow_schema::datatype::DataType::List"><code>DataType::List</code></a>.</p>
+
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>fields = Fields::from(<span class="macro">vec!</span>[
+    Field::new(<span class="string">&quot;a&quot;</span>, DataType::Int32, <span class="bool-val">true</span>), <span class="comment">// Leaf 0
+    </span>Field::new(<span class="string">&quot;b&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+        Field::new(<span class="string">&quot;c&quot;</span>, DataType::Float32, <span class="bool-val">false</span>), <span class="comment">// Leaf 1
+        </span>Field::new(<span class="string">&quot;d&quot;</span>, DataType::Float64, <span class="bool-val">false</span>), <span class="comment">// Leaf 2
+        </span>Field::new(<span class="string">&quot;e&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+            Field::new(<span class="string">&quot;f&quot;</span>, DataType::Int32, <span class="bool-val">false</span>),   <span class="comment">// Leaf 3
+            </span>Field::new(<span class="string">&quot;g&quot;</span>, DataType::Float16, <span class="bool-val">false</span>), <span class="comment">// Leaf 4
+        </span>])), <span class="bool-val">true</span>),
+    ])), <span class="bool-val">false</span>)
+]);
+<span class="kw">let </span>filtered = fields.filter_leaves(|idx, <span class="kw">_</span>| [<span class="number">0</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>].contains(<span class="kw-2">&amp;</span>idx));
+<span class="kw">let </span>expected = Fields::from(<span class="macro">vec!</span>[
+    Field::new(<span class="string">&quot;a&quot;</span>, DataType::Int32, <span class="bool-val">true</span>),
+    Field::new(<span class="string">&quot;b&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+        Field::new(<span class="string">&quot;d&quot;</span>, DataType::Float64, <span class="bool-val">false</span>),
+        Field::new(<span class="string">&quot;e&quot;</span>, DataType::Struct(Fields::from(<span class="macro">vec!</span>[
+            Field::new(<span class="string">&quot;f&quot;</span>, DataType::Int32, <span class="bool-val">false</span>),
+            Field::new(<span class="string">&quot;g&quot;</span>, DataType::Float16, <span class="bool-val">false</span>),
+        ])), <span class="bool-val">true</span>),
+    ])), <span class="bool-val">false</span>)
+]);
+<span class="macro">assert_eq!</span>(filtered, expected);</code></pre></div>
 </div></details></div></details></div><h2 id="deref-methods-%5BFieldRef%5D" class="small-section-header"><span>Methods from <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = [<a class="type" href="field/type.FieldRef.html" title="type arrow_schema::field::FieldRef">FieldRef</a>]&gt;</span><a href="#deref-methods-%5BFieldRef%5D" class="anchor">§</a></h2><div id="deref-methods-%5BFieldRef%5D [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_bytes" class="method"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/ascii/ascii_char.rs.html#555">source</a><h4 class="code-header">pub fn <a href="#method.as_bytes" class="fn">as_bytes</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></ [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><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/slice/mod.rs.html#142">source</a></span><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize [...]
@@ -1117,18 +1151,18 @@ given separator between each.</p>
 <h5 id="examples-59"><a href="#examples-59">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="macro">assert_eq!</span>([<span class="string">&quot;hello&quot;</span>, <span class="string">&quot;world&quot;</span>].connect(<span class="string">&quot; &quot;</span>), <span class="string">&quot;hello world&quot;</span>);
 <span class="macro">assert_eq!</span>([[<span class="number">1</span>, <span class="number">2</span>], [<span class="number">3</span>, <span class="number">4</span>]].connect(<span class="kw-2">&amp;</span><span class="number">0</span>), [<span class="number">1</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
-</div></details></div><h2 id="trait-implementations" class="small-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-Fields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#56">source</a><a href="#impl-Clone-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="ht [...]
-    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
+</div></details></div><h2 id="trait-implementations" class="small-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-Fields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#57">source</a><a href="#impl-Clone-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="ht [...]
+    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl"><span class="rightside"><span class= [...]
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-Fields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#56">source</a><a href="#impl-PartialOrd-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::Pa [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-Fields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#57">source</a><a href="#impl-PartialOrd-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::Pa [...]
 operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" 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#1155">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn  [...]
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Fields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#57">source</a><a href="#impl-Serialize-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serial [...]
-    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Fields" class="impl"><a class="src rightside" href="../src/arrow_schema/field [...]
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Fields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#58">source</a><a href="#impl-Serialize-for-Fields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serial [...]
+    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Fields" class="impl"><a class="src rightside" href="../src/arrow_schema/field [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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>,</span></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/arrow_schema/struct.UnionFields.html b/arrow_schema/struct.UnionFields.html
index f1815f082c..f5688bd441 100644
--- a/arrow_schema/struct.UnionFields.html
+++ b/arrow_schema/struct.UnionFields.html
@@ -1,6 +1,6 @@
-<!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="A cheaply cloneable, owned collection of `FieldRef` and their corresponding type ids"><title>UnionFields in arrow_schema - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as [...]
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>, <a class="type" href [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#224-245">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>&lt;F, T&gt;(type_ids: T, fields: F) -&gt; Self<span class="where fmt-newline">where
+<!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="A cheaply cloneable, owned collection of `FieldRef` and their corresponding type ids"><title>UnionFields in arrow_schema - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as [...]
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;[(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>, <a class="type" href [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#327-348">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>&lt;F, T&gt;(type_ids: T, fields: F) -&gt; Self<span class="where fmt-newline">where
     F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,
     F::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" title="type core::iter::traits::collect::IntoIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="type" href="field/type.FieldRef.html" title="type arrow_schema::field::FieldRef">FieldRef</a>&gt;,
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Create a new <a href="fields/struct.UnionFields.html" title="struct arrow_schema::fields::UnionFields"><code>UnionFields</code></a> from a <a h [...]
@@ -17,25 +17,25 @@
         Field::new(<span class="string">&quot;field3&quot;</span>, DataType::Utf8, <span class="bool-val">false</span>),
     ],
 );</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#248-252">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#255-257">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</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 fields in this <a href="fields/struct.Unio [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#260-262">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</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</code> if this is empty</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#267-269">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 class="primitive"  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.size" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#351-355">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fn">size</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>Return size of this instance in bytes.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#358-360">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</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 fields in this <a href="fields/struct.Unio [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.is_empty" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#363-365">source</a><h4 class="code-header">pub fn <a href="#method.is_empty" class="fn">is_empty</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</code> if this is empty</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#370-372">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 class="primitive"  [...]
 <p>Note: the iteration order is not guaranteed</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.try_merge" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#274-301">source</a><h4 class="code-header">pub(crate) fn <a href="#method.try_merge" class="fn">try_merge</a>(&amp;mut self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Self</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.try_merge" class="method"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#377-404">source</a><h4 class="code-header">pub(crate) fn <a href="#method.try_merge" class="fn">try_merge</a>(&amp;mut self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Self</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/ [...]
 <p>See <a href="field/struct.Field.html#method.try_merge" title="method arrow_schema::field::Field::try_merge"><code>Field::try_merge</code></a></p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-UnionFields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#190">source</a><a href="#impl-Clone-for-UnionFields" class="anchor">§</a><h3 class="code-header">imp [...]
-    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-UnionFields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#293">source</a><a href="#impl-Clone-for-UnionFields" class="anchor">§</a><h3 class="code-header">imp [...]
+    __D: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.193/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl"><span class="rightside"><span class= [...]
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a>,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read more</a></div></details></div [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-UnionFields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#190">source</a><a href="#impl-PartialOrd-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait co [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd-for-UnionFields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#293">source</a><a href="#impl-PartialOrd-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait co [...]
 operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" 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#1155">source</a></span><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn  [...]
-operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-UnionFields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#191">source</a><a href="#impl-Serialize-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/t [...]
-    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-UnionFields" class="impl"><a class="src rightside" href="../src/arrow_schema/ [...]
+operator. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-UnionFields" class="impl"><a class="src rightside" href="../src/arrow_schema/fields.rs.html#294">source</a><a href="#impl-Serialize-for-UnionFields" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/t [...]
+    __S: <a class="trait" href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.193/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-UnionFields" class="impl"><a class="src rightside" href="../src/arrow_schema/ [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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>,</span></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/arrow_stream_to_file/fn.main.html b/arrow_stream_to_file/fn.main.html
index 012d063cf6..97adcb4f8e 100644
--- a/arrow_stream_to_file/fn.main.html
+++ b/arrow_stream_to_file/fn.main.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="API documentation for the Rust `main` fn in crate `arrow_stream_to_file`."><title>main in arrow_stream_to_file - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" ty [...]
\ 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="API documentation for the Rust `main` fn in crate `arrow_stream_to_file`."><title>main in arrow_stream_to_file - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" ty [...]
\ No newline at end of file
diff --git a/help.html b/help.html
index f49b12d12d..9985f00e00 100644
--- a/help.html
+++ b/help.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="Documentation for Rustdoc"><title>Help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843f [...]
\ 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="Documentation for Rustdoc"><title>Help</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843f [...]
\ No newline at end of file
diff --git a/index.html b/index.html
index 57732a0637..aa43e04640 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><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843f [...]
\ 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><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843f [...]
\ No newline at end of file
diff --git a/parquet/arrow/arrow_reader/selection/struct.RowSelection.html b/parquet/arrow/arrow_reader/selection/struct.RowSelection.html
index 28db97f8e4..7a1fb32bcb 100644
--- a/parquet/arrow/arrow_reader/selection/struct.RowSelection.html
+++ b/parquet/arrow/arrow_reader/selection/struct.RowSelection.html
@@ -66,7 +66,7 @@ other:     NYNNNNNNY</p>
 </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#408-410">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#413-415">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="small-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> [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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> [...]
 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#239">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. [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
diff --git a/parquet/arrow/arrow_reader/struct.RowSelection.html b/parquet/arrow/arrow_reader/struct.RowSelection.html
index 2511863d9e..446ec4dcaf 100644
--- a/parquet/arrow/arrow_reader/struct.RowSelection.html
+++ b/parquet/arrow/arrow_reader/struct.RowSelection.html
@@ -66,7 +66,7 @@ other:     NYNNNNNNY</p>
 </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#408-410">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#413-415">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="small-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 [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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 [...]
 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#239">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/ [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
diff --git a/parquet/basic/enum.Compression.html b/parquet/basic/enum.Compression.html
index 6a301fedf0..710dc5593a 100644
--- a/parquet/basic/enum.Compression.html
+++ b/parquet/basic/enum.Compression.html
@@ -19,7 +19,7 @@ to provide a good balance of compression, performance, and ecosystem support. Al
 <a href="enum.Compression.html#variant.LZ4_RAW" title="variant parquet::basic::Compression::LZ4_RAW"><code>Compression::LZ4_RAW</code></a> provides much faster decompression speeds, at the cost of typically
 worse compression ratios. However, it is not as widely supported by the ecosystem, with the
 Hadoop ecosystem historically favoring the non-standard and now deprecated <a href="enum.Compression.html#variant.LZ4" title="variant parquet::basic::Compression::LZ4"><code>Compression::LZ4</code></a>.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.UNCOMPRESSED" class="variant"><a href="#variant.UNCOMPRESSED" class="anchor">§</a><h3 class="code-header">UNCOMPRESSED</h3></section><section id="variant.SNAPPY" class="variant"><a href="#variant.SNAPPY" class="anchor">§</a><h3 class="code-header">SNAPPY</h3></section><section id="variant.GZIP" class="variant"><a href="#va [...]
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.UNCOMPRESSED" class="variant"><a href="#variant.UNCOMPRESSED" class="anchor">§</a><h3 class="code-header">UNCOMPRESSED</h3></section><section id="variant.SNAPPY" class="variant"><a href="#variant.SNAPPY" class="anchor">§</a><h3 class="code-header">SNAPPY</h3></section><section id="variant.GZIP" class="variant"><a href="#va [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-TryFrom%3CCompressionCodec%3E-for-Compression" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#943-964">source</a><a href="#impl-TryFrom%3CCompressionCodec%3E-for-Compression" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/con [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
diff --git a/parquet/basic/enum.ConvertedType.html b/parquet/basic/enum.ConvertedType.html
index 95d978b686..8718977151 100644
--- a/parquet/basic/enum.ConvertedType.html
+++ b/parquet/basic/enum.ConvertedType.html
@@ -70,7 +70,7 @@ the number of months associated with the duration, the second identifies
 the number of days associated with the duration and the third identifies
 the number of milliseconds associated with the provided duration.
 This duration of time is independent of any particular timezone or date.</p>
-</div></div><h2 id="trait-implementations" class="small-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-ConvertedType" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#68">source</a><a href="#impl-Clone-for-ConvertedType" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="h [...]
+</div></div><h2 id="trait-implementations" class="small-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-ConvertedType" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#68">source</a><a href="#impl-Clone-for-ConvertedType" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="h [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-TryFrom%3COption%3CConvertedType%3E%3E-for-ConvertedType" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#670-708">source</a><a href="#impl-TryFrom%3COption%3CConvertedType%3E%3E-for-ConvertedType" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lan [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
diff --git a/parquet/basic/enum.Encoding.html b/parquet/basic/enum.Encoding.html
index e8f7c7fa65..03a7c2f601 100644
--- a/parquet/basic/enum.Encoding.html
+++ b/parquet/basic/enum.Encoding.html
@@ -53,7 +53,7 @@ The individual bytes of an FP value are scattered to the corresponding stream an
 the streams are concatenated.
 This itself does not reduce the size of the data but can lead to better compression
 afterwards.</p>
-</div></div><h2 id="trait-implementations" class="small-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-Encoding" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#234">source</a><a href="#impl-Clone-for-Encoding" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://do [...]
+</div></div><h2 id="trait-implementations" class="small-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-Encoding" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#234">source</a><a href="#impl-Clone-for-Encoding" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://do [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/parquet/basic/enum.SortOrder.html b/parquet/basic/enum.SortOrder.html
index 7bee3711e4..2d124664fe 100644
--- a/parquet/basic/enum.SortOrder.html
+++ b/parquet/basic/enum.SortOrder.html
@@ -12,7 +12,7 @@ min/max.</p>
 </div><section id="variant.UNSIGNED" class="variant"><a href="#variant.UNSIGNED" class="anchor">§</a><h3 class="code-header">UNSIGNED</h3></section><div class="docblock"><p>Unsigned (depending on physical type either value or byte-wise) comparison.</p>
 </div><section id="variant.UNDEFINED" class="variant"><a href="#variant.UNDEFINED" class="anchor">§</a><h3 class="code-header">UNDEFINED</h3></section><div class="docblock"><p>Comparison is undefined.</p>
 </div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SortOrder" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#462-467">source</a><a href="#impl-SortOrder" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.SortOrder.html" title="enum parquet::basic:: [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-SortOrder" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#451">source</a><a href="#impl-Clone-for-SortOrder" class="anchor">§</a><h3 class="code-header">impl <a cl [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-SortOrder" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#451">source</a><a href="#impl-Clone-for-SortOrder" class="anchor">§</a><h3 class="code-header">impl <a 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#239">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-SortOrder" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#451">source</a><a href="#impl-Copy-for-SortOrder" 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="enum" href="enum.SortOrder.html" title= [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
diff --git a/parquet/basic/enum.Type.html b/parquet/basic/enum.Type.html
index 8ae74381da..a971e7d1fe 100644
--- a/parquet/basic/enum.Type.html
+++ b/parquet/basic/enum.Type.html
@@ -12,7 +12,7 @@ These physical types are intended to be used in combination with the encodings t
 control the on disk storage format.
 For example INT16 is not included as a type since a good encoding of INT32
 would handle this.</p>
-</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.BOOLEAN" class="variant"><a href="#variant.BOOLEAN" class="anchor">§</a><h3 class="code-header">BOOLEAN</h3></section><section id="variant.INT32" class="variant"><a href="#variant.INT32" class="anchor">§</a><h3 class="code-header">INT32</h3></section><section id="variant.INT64" class="variant"><a href="#variant.INT64" clas [...]
+</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.BOOLEAN" class="variant"><a href="#variant.BOOLEAN" class="anchor">§</a><h3 class="code-header">BOOLEAN</h3></section><section id="variant.INT32" class="variant"><a href="#variant.INT32" class="anchor">§</a><h3 class="code-header">INT32</h3></section><section id="variant.INT64" class="variant"><a href="#variant.INT64" clas [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
 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#239">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= [...]
diff --git a/parquet/data_type/struct.ByteArray.html b/parquet/data_type/struct.ByteArray.html
index d4daa9116c..298db3c213 100644
--- a/parquet/data_type/struct.ByteArray.html
+++ b/parquet/data_type/struct.ByteArray.html
@@ -8,7 +8,7 @@ Value is backed by a byte buffer.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.data" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#162-167">source</a><h4 class="code-header">pub fn <a href="#method.data" class="fn">data</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></section></summary><div class="docblock"> [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.set_data" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#171-173">source</a><h4 class="code-header">pub fn <a href="#method.set_data" class="fn">set_data</a>(&amp;mut self, data: Bytes)</h4></section></summary><div class="docblock"><p>Set data from another byte buffer.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#177-184">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, start: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) - [...]
-</div></details><section id="method.as_utf8" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#186-192">source</a><h4 class="code-header">pub fn <a href="#method.as_utf8" class="fn">as_utf8</a>(&amp;self) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;</h4></section></div></details></div><h2 id="tr [...]
+</div></details><section id="method.as_utf8" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#186-192">source</a><h4 class="code-header">pub fn <a href="#method.as_utf8" class="fn">as_utf8</a>(&amp;self) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;</h4></section></div></details></div><h2 id="tr [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ParquetValueType-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#890-972">source</a><a href="#impl-ParquetValueType-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class=" [...]
     values: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>,
     writer: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut W</a>,
@@ -16,10 +16,10 @@ Value is backed by a byte buffer.</p>
 ) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class='docblock'>Encode the value directly from a higher level encoder</div></details><details class="toggle method-toggle" open><summary><section id="method.set_data-1" class="method trait-impl"><a class="src rightside" href="../../src/parquet/data_type.rs [...]
     buffer: &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>,
     decoder: &amp;mut PlainDecoderDetails
-) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</h4></section></summary><div class='docblock'>Decode the value from a given buffer for a higher level decoder</div></details><section id="method.skip" class="method trait-impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#941-956">source</a><a href="#method.sk [...]
-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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CFixedLenByteArray%3E-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#281-285">source</a><a href="#impl-PartialEq%3CFixedLenByteArray%3E-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/co [...]
+) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</h4></section></summary><div class='docblock'>Decode the value from a given buffer for a higher level decoder</div></details><section id="method.skip" class="method trait-impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#941-956">source</a><a href="#method.sk [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne-1" 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#239">source</a></span><a href="#method.ne-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" cl [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CFixedLenByteArray%3E-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#281-285">source</a><a href="#impl-PartialEq%3CFixedLenByteArray%3E-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/co [...]
+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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#235-243">source</a><a href="#impl-PartialEq-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne-2" 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#239">source</a></span><a href="#method.ne-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" cl [...]
 sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CByteArray%3E-for-FixedLenByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#305-309">source</a><a href="#impl-PartialOrd%3CByteArray%3E-for-FixedLenByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/ [...]
diff --git a/parquet/data_type/struct.FixedLenByteArray.html b/parquet/data_type/struct.FixedLenByteArray.html
index f45bf028b9..33d17b10c7 100644
--- a/parquet/data_type/struct.FixedLenByteArray.html
+++ b/parquet/data_type/struct.FixedLenByteArray.html
@@ -14,7 +14,7 @@ level logical types, removing the data-hazard from all decoding and encoding pat
 </div></details><details class="toggle method-toggle" open><summary><section id="method.data" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#162-167">source</a><h4 class="code-header">pub fn <a href="#method.data" class="fn">data</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></section></summary><div class="docblock"> [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.set_data" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#171-173">source</a><h4 class="code-header">pub fn <a href="#method.set_data" class="fn">set_data</a>(&amp;mut self, data: Bytes)</h4></section></summary><div class="docblock"><p>Set data from another byte buffer.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#177-184">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, start: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) - [...]
-</div></details><section id="method.as_utf8" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#186-192">source</a><h4 class="code-header">pub fn <a href="#method.as_utf8" class="fn">as_utf8</a>(&amp;self) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;</h4></section></div><h2 id="trait-implementati [...]
+</div></details><section id="method.as_utf8" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#186-192">source</a><h4 class="code-header">pub fn <a href="#method.as_utf8" class="fn">as_utf8</a>(&amp;self) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;</h4></section></div><h2 id="trait-implementati [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ParquetValueType-for-FixedLenByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#974-1058">source</a><a href="#impl-ParquetValueType-for-FixedLenByteArray" class="anchor">§</a><h3 class="code-header [...]
     values: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>,
     writer: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut W</a>,
@@ -22,10 +22,10 @@ level logical types, removing the data-hazard from all decoding and encoding pat
 ) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class='docblock'>Encode the value directly from a higher level encoder</div></details><details class="toggle method-toggle" open><summary><section id="method.set_data-1" class="method trait-impl"><a class="src rightside" href="../../src/parquet/data_type.rs [...]
     buffer: &amp;mut <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a>,
     decoder: &amp;mut PlainDecoderDetails
-) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</h4></section></summary><div class='docblock'>Decode the value from a given buffer for a higher level decoder</div></details><section id="method.skip" class="method trait-impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#1022-1042">source</a><a href="#method. [...]
-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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CFixedLenByteArray%3E-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#281-285">source</a><a href="#impl-PartialEq%3CFixedLenByteArray%3E-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/co [...]
+) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</h4></section></summary><div class='docblock'>Decode the value from a given buffer for a higher level decoder</div></details><section id="method.skip" class="method trait-impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#1022-1042">source</a><a href="#method. [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne-1" 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#239">source</a></span><a href="#method.ne-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" cl [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CFixedLenByteArray%3E-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#281-285">source</a><a href="#impl-PartialEq%3CFixedLenByteArray%3E-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/co [...]
+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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-FixedLenByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#269-273">source</a><a href="#impl-PartialEq-for-FixedLenByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" t [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne-2" 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#239">source</a></span><a href="#method.ne-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" cl [...]
 sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CByteArray%3E-for-FixedLenByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#305-309">source</a><a href="#impl-PartialOrd%3CByteArray%3E-for-FixedLenByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/ [...]
diff --git a/parquet/errors/enum.ParquetError.html b/parquet/errors/enum.ParquetError.html
index d085e12da8..5d32638c5c 100644
--- a/parquet/errors/enum.ParquetError.html
+++ b/parquet/errors/enum.ParquetError.html
@@ -16,7 +16,7 @@ decode.</p>
 </div><section id="variant.ArrowError" class="variant"><a href="#variant.ArrowError" class="anchor">§</a><h3 class="code-header">ArrowError(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</h3></section><div class="docblock"><p>Arrow error.
 Returned when reading into arrow or writing from arrow.</p>
 </div><section id="variant.IndexOutOfBound" class="variant"><a href="#variant.IndexOutOfBound" class="anchor">§</a><h3 class="code-header">IndexOutOfBound(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h3></section><section id="variant.External" class="variant"><a href="#variant.External" class="anchor">§</a><h3 class="code-header">External [...]
-</div></div><h2 id="trait-implementations" class="small-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-Debug-for-ParquetError" class="impl"><a class="src rightside" href="../../src/parquet/errors.rs.html#29">source</a><a href="#impl-Debug-for-ParquetError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="ht [...]
+</div></div><h2 id="trait-implementations" class="small-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-Debug-for-ParquetError" class="impl"><a class="src rightside" href="../../src/parquet/errors.rs.html#29">source</a><a href="#impl-Debug-for-ParquetError" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="ht [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_error_source" class="method trait-impl"><a href="#method.as_error_source" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_error_source</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://do [...]
 to benefit from Rust’s automatic dereferencing of method
diff --git a/parquet/file/serialized_reader/struct.SerializedFileReader.html b/parquet/file/serialized_reader/struct.SerializedFileReader.html
index 79d9eb7574..4caf07d41d 100644
--- a/parquet/file/serialized_reader/struct.SerializedFileReader.html
+++ b/parquet/file/serialized_reader/struct.SerializedFileReader.html
@@ -9,7 +9,7 @@ Returns error if Parquet file does not exist or is corrupt.</p>
 Returns error if Parquet file does not exist or is corrupt.</p>
 </div></details></div></details></div><h2 id="trait-implementations" class="small-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-FileReader-for-SerializedFileReader%3CR%3E" class="impl"><a class="src rightside" href="../../../src/parquet/file/serialized_reader.rs.html#257-282">source</a><a href="#impl-FileReader-for-SerializedFil [...]
 using the full file schema over all row groups.</p>
-</div><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Item" class="associatedtype trait-impl"><a href="#associatedtype.Item" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" class="associatedtype">Item</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a [...]
+</div><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Item" class="associatedtype trait-impl"><a href="#associatedtype.Item" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" class="associatedtype">Item</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a [...]
     R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-SerializedFileReader%3CR%3E" class="impl"><a href="#impl-Send-for-SerializedFileReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core:: [...]
     R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"> [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
diff --git a/parquet/file/statistics/enum.Statistics.html b/parquet/file/statistics/enum.Statistics.html
index cb26d35c3b..d86dd61316 100644
--- a/parquet/file/statistics/enum.Statistics.html
+++ b/parquet/file/statistics/enum.Statistics.html
@@ -89,7 +89,7 @@ Panics if min value is not set.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.max_bytes" class="method"><a class="src rightside" href="../../../src/parquet/file/statistics.rs.html#410-412">source</a><h4 class="code-header">pub fn <a href="#method.max_bytes" class="fn">max_bytes</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&amp;[u8]">ⓘ</a></h4></section></summar [...]
 Panics if max value is not set.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.physical_type" class="method"><a class="src rightside" href="../../../src/parquet/file/statistics.rs.html#415-426">source</a><h4 class="code-header">pub fn <a href="#method.physical_type" class="fn">physical_type</a>(&amp;self) -&gt; <a class="enum" href="../../basic/enum.Type.html" title="enum parquet::basic::Type">Type</a></h4></section></summary><div class="docblock"><p>Returns physical type associ [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Statistics" class="impl"><a class="src rightside" href="../../../src/parquet/file/statistics.rs.html#290">source</a><a href="#impl-Clone-for-Statistics" class="anchor">§</a><h3 class="code-hea [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-Statistics" class="impl"><a class="src rightside" href="../../../src/parquet/file/statistics.rs.html#290">source</a><a href="#impl-Clone-for-Statistics" class="anchor">§</a><h3 class="code-hea [...]
 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#239">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-StructuralPartialEq-for-Statistics" class="impl"><a class="src rightside" href="../../../src/parquet/file/statistics.rs.html#290">source</a><a href="#impl-StructuralPartialEq-for-Statistics" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::Structur [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
diff --git a/parquet/file/statistics/struct.ValueStatistics.html b/parquet/file/statistics/struct.ValueStatistics.html
index 066b854f88..3e0747f3fe 100644
--- a/parquet/file/statistics/struct.ValueStatistics.html
+++ b/parquet/file/statistics/struct.ValueStatistics.html
@@ -59,7 +59,7 @@ which have a type-defined sort order.</p>
 <p>However, not all readers have been updated. For backwards compatibility, this method
 returns <code>true</code> if the statistics within this have a signed sort order, that is
 compatible with being stored in the deprecated <code>min</code> and <code>max</code> fields</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-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-ValueStatistics%3CT%3E" class="impl"><a class="src rightside" href="../../../src/parquet/file/statistics.rs.html#448">source</a><a href="#impl-Clone-for-ValueStatistics%3CT%3E" class="anchor"> [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-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-ValueStatistics%3CT%3E" class="impl"><a class="src rightside" href="../../../src/parquet/file/statistics.rs.html#448">source</a><a href="#impl-Clone-for-ValueStatistics%3CT%3E" class="anchor"> [...]
 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#239">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-ValueStatistics%3CT%3E" class="impl"><a class="src rightside" href="../../../src/parquet/file/statistics.rs.html#448">source</a><a href="#impl-Eq-for-ValueStatistics%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a>&gt; <a class="trait" hre [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-ValueStatistics%3CT%3E" class="impl"><a href="#impl-Send-for-ValueStatistics%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Se [...]
diff --git a/parquet/format/struct.BoundaryOrder.html b/parquet/format/struct.BoundaryOrder.html
index 5fe495517b..209a2c5fa3 100644
--- a/parquet/format/struct.BoundaryOrder.html
+++ b/parquet/format/struct.BoundaryOrder.html
@@ -1,6 +1,6 @@
 <!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="Enum to annotate whether lists of min/max elements inside ColumnIndex are ordered and if so, in which direction."><title>BoundaryOrder in parquet::format - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac52 [...]
 are ordered and if so, in which direction.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="impleme [...]
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="impleme [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/parquet/format/struct.CompressionCodec.html b/parquet/format/struct.CompressionCodec.html
index 7ac6ac4b9f..760ab92207 100644
--- a/parquet/format/struct.CompressionCodec.html
+++ b/parquet/format/struct.CompressionCodec.html
@@ -3,7 +3,7 @@
 Codec support may vary between readers based on the format version and
 libraries available at runtime.</p>
 <p>See Compression.md for a detailed specification of these algorithms.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="impleme [...]
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="impleme [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/parquet/format/struct.ConvertedType.html b/parquet/format/struct.ConvertedType.html
index 1dde453d1c..eb905634ad 100644
--- a/parquet/format/struct.ConvertedType.html
+++ b/parquet/format/struct.ConvertedType.html
@@ -54,7 +54,7 @@ the second identifies the number of days associated with the duration
 and the third identifies the number of milliseconds associated with
 the provided duration.  This duration of time is independent of any
 particular timezone or date.</p>
-</div></details><section id="associatedconstant.ENUM_VALUES" class="associatedconstant"><a class="src rightside" href="../../src/parquet/format.rs.html#199-222">source</a><h4 class="code-header">pub const <a href="#associatedconstant.ENUM_VALUES" class="constant">ENUM_VALUES</a>: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a> = _</h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header"> [...]
+</div></details><section id="associatedconstant.ENUM_VALUES" class="associatedconstant"><a class="src rightside" href="../../src/parquet/format.rs.html#199-222">source</a><h4 class="code-header">pub const <a href="#associatedconstant.ENUM_VALUES" class="constant">ENUM_VALUES</a>: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a> = _</h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header"> [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/parquet/format/struct.Encoding.html b/parquet/format/struct.Encoding.html
index 06e7ed8234..b076f3101b 100644
--- a/parquet/format/struct.Encoding.html
+++ b/parquet/format/struct.Encoding.html
@@ -30,7 +30,7 @@ The individual bytes of an FP value are scattered to the corresponding stream an
 the streams are concatenated.
 This itself does not reduce the size of the data but can lead to better compression
 afterwards.</p>
-</div></details><section id="associatedconstant.ENUM_VALUES" class="associatedconstant"><a class="src rightside" href="../../src/parquet/format.rs.html#387-397">source</a><h4 class="code-header">pub const <a href="#associatedconstant.ENUM_VALUES" class="constant">ENUM_VALUES</a>: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a> = _</h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header"> [...]
+</div></details><section id="associatedconstant.ENUM_VALUES" class="associatedconstant"><a class="src rightside" href="../../src/parquet/format.rs.html#387-397">source</a><h4 class="code-header">pub const <a href="#associatedconstant.ENUM_VALUES" class="constant">ENUM_VALUES</a>: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a> = _</h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header"> [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/parquet/format/struct.FieldRepetitionType.html b/parquet/format/struct.FieldRepetitionType.html
index c9a1b8bf76..53b2757b26 100644
--- a/parquet/format/struct.FieldRepetitionType.html
+++ b/parquet/format/struct.FieldRepetitionType.html
@@ -2,7 +2,7 @@
 </div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="impleme [...]
 </div></details><details class="toggle" open><summary><section id="associatedconstant.OPTIONAL" class="associatedconstant"><a class="src rightside" href="../../src/parquet/format.rs.html#292">source</a><h4 class="code-header">pub const <a href="#associatedconstant.OPTIONAL" class="constant">OPTIONAL</a>: <a class="struct" href="struct.FieldRepetitionType.html" title="struct parquet::format::FieldRepetitionType">FieldRepetitionType</a> = _</h4></section></summary><div class="docblock"><p> [...]
 </div></details><details class="toggle" open><summary><section id="associatedconstant.REPEATED" class="associatedconstant"><a class="src rightside" href="../../src/parquet/format.rs.html#294">source</a><h4 class="code-header">pub const <a href="#associatedconstant.REPEATED" class="constant">REPEATED</a>: <a class="struct" href="struct.FieldRepetitionType.html" title="struct parquet::format::FieldRepetitionType">FieldRepetitionType</a> = _</h4></section></summary><div class="docblock"><p> [...]
-</div></details><section id="associatedconstant.ENUM_VALUES" class="associatedconstant"><a class="src rightside" href="../../src/parquet/format.rs.html#295-299">source</a><h4 class="code-header">pub const <a href="#associatedconstant.ENUM_VALUES" class="constant">ENUM_VALUES</a>: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a> = _</h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header"> [...]
+</div></details><section id="associatedconstant.ENUM_VALUES" class="associatedconstant"><a class="src rightside" href="../../src/parquet/format.rs.html#295-299">source</a><h4 class="code-header">pub const <a href="#associatedconstant.ENUM_VALUES" class="constant">ENUM_VALUES</a>: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[Self]</a> = _</h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header"> [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/parquet/format/struct.PageType.html b/parquet/format/struct.PageType.html
index 3e7c50d865..a515d32bbc 100644
--- a/parquet/format/struct.PageType.html
+++ b/parquet/format/struct.PageType.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 `PageType` struct in crate `parquet`."><title>PageType in parquet::format - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type= [...]
+<!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 `PageType` struct in crate `parquet`."><title>PageType in parquet::format - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type= [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/parquet/format/struct.Type.html b/parquet/format/struct.Type.html
index d4a29b411f..c48502be58 100644
--- a/parquet/format/struct.Type.html
+++ b/parquet/format/struct.Type.html
@@ -2,7 +2,7 @@
 with the encodings to control the on disk storage format.
 For example INT16 is not included as a type since a good encoding of INT32
 would handle this.</p>
-</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="impleme [...]
+</div></details><h2 id="fields" class="fields small-section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield small-section-header"><a href="#structfield.0" class="anchor field">§</a><code>0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></code></span><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="impleme [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method trait-impl"><span class="rightside"><span class="s [...]
diff --git a/parquet/record/api/enum.Field.html b/parquet/record/api/enum.Field.html
index c65f4f8b1d..eb300c9b8d 100644
--- a/parquet/record/api/enum.Field.html
+++ b/parquet/record/api/enum.Field.html
@@ -55,7 +55,7 @@ Unix epoch, 1 January 1970.</p>
     value: <a class="struct" href="../../data_type/struct.ByteArray.html" title="struct parquet::data_type::ByteArray">ByteArray</a>
 ) -&gt; <a class="type" href="../../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;Self&gt;</h4></section></summary><div class="docblock"><p>Converts Parquet BYTE_ARRAY type with converted type into a UTF8
 string, decimal, float16, or an array of bytes.</p>
-</div></details><section id="method.to_json_value" class="method"><a class="src rightside" href="../../../src/parquet/record/api.rs.html#701-749">source</a><h4 class="code-header">pub fn <a href="#method.to_json_value" class="fn">to_json_value</a>(&amp;self) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.108/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section- [...]
+</div></details><section id="method.to_json_value" class="method"><a class="src rightside" href="../../../src/parquet/record/api.rs.html#701-749">source</a><h4 class="code-header">pub fn <a href="#method.to_json_value" class="fn">to_json_value</a>(&amp;self) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.108/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section- [...]
 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#239">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-StructuralPartialEq-for-Field" class="impl"><a class="src rightside" href="../../../src/parquet/record/api.rs.html#500">source</a><a href="#impl-StructuralPartialEq-for-Field" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">St [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
diff --git a/parquet/record/api/struct.Row.html b/parquet/record/api/struct.Row.html
index 38e34b61fb..9f204f97c6 100644
--- a/parquet/record/api/struct.Row.html
+++ b/parquet/record/api/struct.Row.html
@@ -14,9 +14,9 @@
 <span class="kw">for </span>(idx, (name, field)) <span class="kw">in </span>row.get_column_iter().enumerate() {
     <span class="macro">println!</span>(<span class="string">&quot;column index: {}, column name: {}, column value: {}&quot;</span>, idx, name, field);
 }</code></pre></div>
-</div></details><section id="method.to_json_value" class="method"><a class="src rightside" href="../../../src/parquet/record/api.rs.html#85-92">source</a><h4 class="code-header">pub fn <a href="#method.to_json_value" class="fn">to_json_value</a>(&amp;self) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.108/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section-he [...]
+</div></details><section id="method.to_json_value" class="method"><a class="src rightside" href="../../../src/parquet/record/api.rs.html#85-92">source</a><h4 class="code-header">pub fn <a href="#method.to_json_value" class="fn">to_json_value</a>(&amp;self) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.108/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section-he [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-RowAccessor-for-Row" class="impl"><a class="src rightside" href="../../../src/parquet/record/api.rs.html#202-242">source</a><a href="#impl-RowAccessor-for-Row" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.RowAccessor.html" title="trait parquet::record::api::RowAccessor">RowAccessor</a [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-RowAccessor-for-Row" class="impl"><a class="src rightside" href="../../../src/parquet/record/api.rs.html#202-242">source</a><a href="#impl-RowAccessor-for-Row" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.RowAccessor.html" title="trait parquet::record::api::RowAccessor">RowAccessor</a [...]
 </div></details></div></details><section id="impl-StructuralPartialEq-for-Row" class="impl"><a class="src rightside" href="../../../src/parquet/record/api.rs.html#48">source</a><a href="#impl-StructuralPartialEq-for-Row" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.Row.html" titl [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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: [...]
diff --git a/parquet/record/enum.Field.html b/parquet/record/enum.Field.html
index b22effaec8..9d6e948f5f 100644
--- a/parquet/record/enum.Field.html
+++ b/parquet/record/enum.Field.html
@@ -55,7 +55,7 @@ Unix epoch, 1 January 1970.</p>
     value: <a class="struct" href="../data_type/struct.ByteArray.html" title="struct parquet::data_type::ByteArray">ByteArray</a>
 ) -&gt; <a class="type" href="../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;Self&gt;</h4></section></summary><div class="docblock"><p>Converts Parquet BYTE_ARRAY type with converted type into a UTF8
 string, decimal, float16, or an array of bytes.</p>
-</div></details><section id="method.to_json_value" class="method"><a class="src rightside" href="../../src/parquet/record/api.rs.html#701-749">source</a><h4 class="code-header">pub fn <a href="#method.to_json_value" class="fn">to_json_value</a>(&amp;self) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.108/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section-hea [...]
+</div></details><section id="method.to_json_value" class="method"><a class="src rightside" href="../../src/parquet/record/api.rs.html#701-749">source</a><h4 class="code-header">pub fn <a href="#method.to_json_value" class="fn">to_json_value</a>(&amp;self) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.108/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section-hea [...]
 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#239">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-StructuralPartialEq-for-Field" class="impl"><a class="src rightside" href="../../src/parquet/record/api.rs.html#500">source</a><a href="#impl-StructuralPartialEq-for-Field" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">Struc [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
diff --git a/parquet/record/struct.Row.html b/parquet/record/struct.Row.html
index 4dbf9377b3..453fc1c6bf 100644
--- a/parquet/record/struct.Row.html
+++ b/parquet/record/struct.Row.html
@@ -14,9 +14,9 @@
 <span class="kw">for </span>(idx, (name, field)) <span class="kw">in </span>row.get_column_iter().enumerate() {
     <span class="macro">println!</span>(<span class="string">&quot;column index: {}, column name: {}, column value: {}&quot;</span>, idx, name, field);
 }</code></pre></div>
-</div></details><section id="method.to_json_value" class="method"><a class="src rightside" href="../../src/parquet/record/api.rs.html#85-92">source</a><h4 class="code-header">pub fn <a href="#method.to_json_value" class="fn">to_json_value</a>(&amp;self) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.108/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section-heade [...]
+</div></details><section id="method.to_json_value" class="method"><a class="src rightside" href="../../src/parquet/record/api.rs.html#85-92">source</a><h4 class="code-header">pub fn <a href="#method.to_json_value" class="fn">to_json_value</a>(&amp;self) -&gt; <a class="enum" href="https://docs.rs/serde_json/1.0.108/serde_json/value/enum.Value.html" title="enum serde_json::value::Value">Value</a></h4></section></div></details></div><h2 id="trait-implementations" class="small-section-heade [...]
 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#239">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><details class="toggle implementors-toggle" open><summary><section id="impl-RowAccessor-for-Row" class="impl"><a class="src rightside" href="../../src/parquet/record/api.rs.html#202-242">source</a><a href="#impl-RowAccessor-for-Row" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="api/trait.RowAccessor.html" title="trait parquet::record::api::RowAccessor">RowAccessor</ [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-RowAccessor-for-Row" class="impl"><a class="src rightside" href="../../src/parquet/record/api.rs.html#202-242">source</a><a href="#impl-RowAccessor-for-Row" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="api/trait.RowAccessor.html" title="trait parquet::record::api::RowAccessor">RowAccessor</ [...]
 </div></details></div></details><section id="impl-StructuralPartialEq-for-Row" class="impl"><a class="src rightside" href="../../src/parquet/record/api.rs.html#48">source</a><a href="#impl-StructuralPartialEq-for-Row" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="api/struct.Row.html" tit [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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 hre [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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: [...]
diff --git a/parquet/schema/types/struct.ColumnPath.html b/parquet/schema/types/struct.ColumnPath.html
index fa024d904c..515c8bf260 100644
--- a/parquet/schema/types/struct.ColumnPath.html
+++ b/parquet/schema/types/struct.ColumnPath.html
@@ -18,7 +18,7 @@
 
 path.append(<span class="macro">vec!</span>[<span class="string">&quot;d&quot;</span>.to_string(), <span class="string">&quot;e&quot;</span>.to_string()]);
 <span class="macro">assert_eq!</span>(<span class="kw-2">&amp;</span>path.string(), <span class="string">&quot;a.b.c.d.e&quot;</span>);</code></pre></div>
-</div></details><section id="method.parts" class="method"><a class="src rightside" href="../../../src/parquet/schema/types.rs.html#703-705">source</a><h4 class="code-header">pub fn <a href="#method.parts" class="fn">parts</a>(&amp;self) -&gt; &amp;[<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>]</h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait I [...]
+</div></details><section id="method.parts" class="method"><a class="src rightside" href="../../../src/parquet/schema/types.rs.html#703-705">source</a><h4 class="code-header">pub fn <a href="#method.parts" class="fn">parts</a>(&amp;self) -&gt; &amp;[<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>]</h4></section></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait I [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></ [...]
 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#239">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= [...]
diff --git a/search-index.js b/search-index.js
index 88fa9acfba..1991bb8b21 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1,5 +1,5 @@
 var searchIndex = JSON.parse('{\
-"arrow":{"doc":"A complete, safe, native Rust implementation of Apache …","t":"CCCCECQQCCCEECCECCCSKPKKPKKFFIFIKKKKPIIIIPFFFIFGGTTTFIIIIIIKIIIIIIPFIIIIIIIIIIIIIFFIFFIPIIIIIIIIIIIIFFFFFIFIIITIIIIIIIIIIIIIIIIIIIIIIIIIIIIRIIIIIIIIIIPIIFIFFFRFFFTKTFFFIFFFFKKFFRRIIIIPFFIIIIIIIIIIIIIIIIIIIIIIIIFFIIIIIIIIIIIIIIIIFFPTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONMNMNOOCOOOOOOOOOOMMNNNNNNNNNNNNNNNMNMNNNHMNNMNHNHMNNMNNHMNHHHHNHMNNHMNHNHMNHNHNNHMNHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOO [...]
+"arrow":{"doc":"A complete, safe, native Rust implementation of Apache …","t":"CCCCECQQCCCEECCECCCSKPKKPKKFFIFIKKKKPIIIIPFFFIFGGTTTFIIIIIIKIIIIIIPFIIIIIIIIIIIIIFFIFFIPIIIIIIIIIIIIFFFFFIFIIITIIIIIIIIIIIIIIIIIIIIIIIIIIIIRIIIIIIIIIIPIIFIFFFRFFFTKTFFFIFFFFKKFFRRIIIIPFFIIIIIIIIIIIIIIIIIIIIIIIIFFIIIIIIIIIIIIIIIIFFPTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONMNMNOOCOOOOOOOOOOMMNNNNNNNNNNNNNNNMNMNNNHMNNMNHNHMNNMNNHMNHHHHNHMNNHMNHNHMNHNHNNHMNHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOO [...]
 "arrow_arith":{"doc":"Arrow arithmetic and aggregation kernels","t":"CCCCCCHQHHHHHHHHHHHHHHHHHCHHHHFFRRKFMNNNMNNNMNNNNNNNNNNNNNNNNNNMNNNMNNNNNNOOOMNNNHNNNNNNNNNHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHPPKPRKPPGPPPKHMMMMMHMMHNNNNNNQHHHHHNNNNHHNHHHQHQQQHHMMMMMHMMQHNNNNQQNKHHHHHHHHHHHHHHHHHHHHMHHMHHMMHQHHHHHHHHH","n":["aggregate","arity","bitwise","boolean","numeric","temporal","bit_and","bit_operation","bit_or","bit_xor","bool_and","bool_or","is_nan","max","max_array","max_binary","max_boolean"," [...]
 "arrow_array":{"doc":"The central type in Apache Arrow are arrays, which are a …","t":"KKKTFFFKKFRRTMMCCMCCMOMCMMQQQQQQQQMMMMMOOMMCMMMMMMMMMMMOMMMMMMMCMMCOOCCMOMMCCCCMMMKTTMMMMMMNNNNNNNNNNMMMMMQQMMMMMMKKKIEIFIIIIFIIIIFFIIIIFFITIIIIIIIIIIIIIIRIIIIFFFKTFFIFIIIIIIIIFFIIIIIIIIFOMNNNNNNNNNNNNNNNNNNNNNCCCMNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCONNOOCCNNMNMNHMNMNNNNNOOOOOOOOONNMOOOOOOOOOMNOOOOCNNHCOHHMCNNMNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMNOOCHOCOOOOOMNCCMNO [...]
 "arrow_avro":{"doc":"Convert data to / from the Apache Arrow memory format and …","t":"CCCPSGPPPPPNNNNNNNNNNNNNCCHHCFFGPPPPPNNNNNNOOONNNNNNNNNNONNNOONNNNNNNNNOPPPFFGPPSPPPPNNNNNNONNNNNNNNNNNNNNNOOOONONOONNNNNNNONNNOFNNNNNONNONNNFPFPPPGPFPFFPPPPFPPPGFPPSGPFPGPPPOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNOOONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOONNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNO","n":["compression","reader","s [...]
@@ -16,7 +16,7 @@ var searchIndex = JSON.parse('{\
 "arrow_json_integration_test":{"doc":"","t":"FPPGPOHNNNNNNNNNNNNNNNNNNNNNNONNNNOHHONNNNNNNNNNHNONN","n":["Args","ArrowToJson","JsonToArrow","Mode","Validate","arrow","arrow_to_json","augment_args","augment_args_for_update","borrow","borrow","borrow_mut","borrow_mut","cast","cast","clone","clone_into","command","command_for_update","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_cast","from_cast","from_ref","group_id","integration","into","into","into_request","i [...]
 "arrow_ord":{"doc":"Arrow ordering kernels","t":"CCCCCKPPPPRPPPPGHHHNNNNNHHHHNNNNHHNMMMHHHHHNNNNNNMIHHHHHFNNNNNHNNNNNNHHNNNNNHHHHFIFFNNNNNNNNNHNNNNNNONONNNNNNNNNNNNNNNHHNOONHHHHHHHHHHHHHHHHHHHNNNNNNNNNNNNO","n":["cmp","ord","partition","rank","sort","ArrayOrd","Distinct","Equal","Greater","GreaterEqual","Item","Less","LessEqual","NotDistinct","NotEqual","Op","apply","apply_op","apply_op_vectored","borrow","borrow_mut","cast","clone","clone_into","collect_bool","compare_op","distinct","eq [...]
 "arrow_row":{"doc":"A comparable row-oriented representation of a collection …","t":"GPPGPPFFFFFFFFPPPPNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNOOOOONNNOOOHQNHHNONNNNNNNNNOOCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNHNOONNNNNNNNHONNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOCTRKKMHHHHHHMHQQHMHHHHHHSSSSSSHHHHHHHHH","n":["Codec","Dictionary","Dictionary","Encoder","List","List","OwnedRow","Row","RowConfig","RowConverter","RowParser","Rows","RowsIter","SortField","Stateless"," [...]
-"arrow_schema":{"doc":"Arrow logical types","t":"GPPPPPPSSSSSGPPPPPPPPPPPFIFPPPPPPPPPPGPPPPPPPPPPPPPPPPPPPPFFPIPFPPPPGPPPPPPFGPPOONNNNNOCNOOONCCCCOONNNNOOOONOONOOOOCNNNNPPSSSSSGPPPPPPPPPPPPPPPPPPGPPPPPPPPPPPPPPPPGPPPPPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNFFFNNNNNNOONOONNNCNONNONNNHNNNNOOONONOOHNNNNNNNNNNNNNNNNNTFTTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFINONNNNNNNONNONONNNNNNNNNNONONNNNNNNNONOO [...]
+"arrow_schema":{"doc":"Arrow logical types","t":"GPPPPPPSSSSSGPPPPPPPPPPPFIFPPPPPPPPPPGPPPPPPPPPPPPPPPPPPPPFFPIPFPPPPGPPPPPPFGPPOONNNNNOCNOOONCCCCOONNNNOOOONOONOOOOCNNNNPPSSSSSGPPPPPPPPPPPPPPPPPPGPPPPPPPPPPPPPPPPGPPPPPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNFFFNNNNNNOONOONNNCNONNONNNHNNNNOOONONOOHNNNNNNNNNNNNNNNNNTFTTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFINONNNNNNNONNONONNNNNNNNNNONONNNNNNNNONOO [...]
 "arrow_select":{"doc":"Arrow selection kernels","t":"CCCCCCCCHHHHHQFFINNNNOHNNHNNNNHNNNOHHNOHONNNNNNOPSIFFFFPPGPPFPNNNNNNNNNNNNNHNNNNNNNOOONOONNHNOOHHHHHHHHHNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNHONOOOONNNNNNNNNNNNNNNNNNFONNNQNNHHHHHNNOQNNNHRFKNNNHONNNNNNNHHHHHHHHHHHHHHHHMQQQNNNNHH","n":["concat","dictionary","filter","interleave","nullif","take","window","zip","binary_capacity","concat","concat_batches","concat_dictionaries","concat_fallback","dict_helper","Interner","MergedDictionaries","P [...]
 "arrow_stream_to_file":{"doc":"","t":"H","n":["main"],"q":[[0,"arrow_stream_to_file"],[1,"arrow::error"]],"d":[""],"i":[0],"f":[[[],[[2,[1]]]]],"c":[],"p":[[1,"tuple"],[8,"Result",1]],"b":[]},\
 "arrow_string":{"doc":"Arrow string kernels","t":"CCCCCCHHHHHHHHHPPPPGPHHNNNHHNNNNHNQHHHHHHHHNNNNHPPPPPPGPPNNNHNNNNNNHNHHNNNHHHHHHHH","n":["concat_elements","length","like","predicate","regexp","substring","concat_element_binary","concat_elements_bytes","concat_elements_dyn","concat_elements_utf8","concat_elements_utf8_many","bit_length","bit_length_impl","length","length_impl","Contains","EndsWith","ILike","Like","Op","StartsWith","apply","binary_predicate","borrow","borrow_mut","cast", [...]
@@ -24,7 +24,7 @@ var searchIndex = JSON.parse('{\
 "flight_test_integration_client":{"doc":"","t":"FPPIPPIGNNNNNNNNNNNNNNNNNNNNNNONNNNHOOONNNNNNNNNNNNN","n":["Args","AuthBasicProto","Err","Error","Middleware","Ok","Result","Scenario","augment_args","augment_args_for_update","borrow","borrow","borrow_mut","borrow_mut","cast","cast","clone","clone_into","command","command_for_update","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_cast","from_cast","from_ref","group_id","host","into","into","into_request","into_re [...]
 "flight_test_integration_server":{"doc":"","t":"FPPIPPIGNNNNNNNNNNNNNNNNNNNNNNNNNNHOONNNNNNNNNNNNN","n":["Args","AuthBasicProto","Err","Error","Middleware","Ok","Result","Scenario","augment_args","augment_args_for_update","borrow","borrow","borrow_mut","borrow_mut","cast","cast","clone","clone_into","command","command_for_update","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_cast","from_cast","from_ref","group_id","into","into","into_request","into_request","m [...]
 "gen":{"doc":"","t":"HH","n":["main","prost_config"],"q":[[0,"gen"],[2,"core::error"],[3,"alloc::boxed"],[4,"core::result"],[5,"prost_build"]],"d":["",""],"i":[0,0],"f":[[[],[[4,[1,[3,[2]]]]]],[[],5]],"c":[],"p":[[1,"tuple"],[10,"Error",2],[5,"Box",3],[6,"Result",4],[5,"Config",5]],"b":[]},\
-"parquet":{"doc":"This crate contains the official Native Rust …","t":"CCCCCCQCCCCCSEEFSEFNCHCCCNNNNCNNNNNNCONNNNNNNNNNOOHHHCNNNNNNNNNKFFFFFIFFFKFFHOOOONNNNNNNNNNNNNNNNNNNNNNNNNMNONMHOOOOCOONNNNNNNNNNNNNNNOONNNNNNNNOONNNNOOOOONNNNNNNNNNMNOOONNOMOOOOOOOOOONNNOOOOCOOOOHOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFFNNNNNNMNONNNNNNNNOMNONNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNONNONNONNNNNNNNNNFFFFGFFFFPPIONNONNNNNNNNNNNNNNNNNNOOCNNNNNNNNNONNNNNOHOONNNNNNNNNNNNNNNNNNNNNNNNNNHHNHHHNHHHHNONNNNNN [...]
+"parquet":{"doc":"This crate contains the official Native Rust …","t":"CCCCCCQCCCCCSEEFSEFNCHCCCNNNNCNNNNNNCONNNNNNNNNNOOHHHCNNNNNNNNNKFFFFFIFFFKFFHOOOONNNNNNNNNNNNNNNNNNNNNNNNNMNONMHOOOOCOONNNNNNNNNNNNNNNOONNNNNNNNOONNNNOOOOONNNNNNNNNNMNOOONNOMOOOOOOOOOONNNOOOOCOOOOHOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFFNNNNNNMNONNNNNNNNOMNONNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNONNONNONNNNNNNNNNFFFFGFFFFPPIONNONNNNNNNNNNNNNNNNNNOOCNNNNNNNNNONNNNNOHOONNNNNNNNNNNNNNNNNNNNNNNNNNHHNHHHNHHHHNONNNNNN [...]
 "parquet_concat":{"doc":"Binary that concatenates the column data of one or more …","t":"FNNNNNNNNNNNNNONHONNNNNN","n":["Args","augment_args","augment_args_for_update","borrow","borrow_mut","cast","command","command_for_update","fmt","from","from_arg_matches","from_arg_matches_mut","from_cast","group_id","input","into","main","output","run","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut"],"q":[[0,"parquet_concat"],[24,"clap_builder::builder::comman [...]
 "parquet_derive":{"doc":"","t":"YYCPPPFPPPGGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNONNNNNNNNNNNONNNNNNONNNN","n":["ParquetRecordReader","ParquetRecordWriter","parquet_field","Array","ChronoNaiveDate","ChronoNaiveDateTime","Field","Option","Reference","Slice","ThirdPartyType","Type","TypePath","Uuid","Vec","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","column_reader","column_writer","converted_type","copied_direct_fields","copied_direct_vals","eq","eq","eq","fmt","fmt","fm [...]
 "parquet_derive_test":{"doc":"","t":"FFOOOOONNNNOOOOOOONNOOONOONNNNNOOOONNOOOOOOOOOOOOOONNNNNNOO","n":["ACompleteRecord","APartiallyCompleteRecord","a_bool","a_borrowed_string","a_str","a_string","bool","borrow","borrow","borrow_mut","borrow_mut","borrowed_byte_vec","borrowed_maybe_a_str","borrowed_maybe_a_string","borrowed_maybe_borrowed_byte_vec","borrowed_maybe_byte_vec","byte_vec","byte_vec","cast","cast","date","double","double","eq","float","float","fmt","from","from","from_cast"," [...]
diff --git a/settings.html b/settings.html
index f87c2cb378..8991524b87 100644
--- a/settings.html
+++ b/settings.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="Settings of Rustdoc"><title>Settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd [...]
\ 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="Settings of Rustdoc"><title>Settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./static.files/FiraSans-Regular-018c141bf0843ffd [...]
\ No newline at end of file
diff --git a/src/arrow_schema/fields.rs.html b/src/arrow_schema/fields.rs.html
index 3f9de0f640..2944484309 100644
--- a/src/arrow_schema/fields.rs.html
+++ b/src/arrow_schema/fields.rs.html
@@ -307,6 +307,236 @@
 <a href="#307" id="307">307</a>
 <a href="#308" id="308">308</a>
 <a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
+<a href="#443" id="443">443</a>
+<a href="#444" id="444">444</a>
+<a href="#445" id="445">445</a>
+<a href="#446" id="446">446</a>
+<a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
+<a href="#458" id="458">458</a>
+<a href="#459" id="459">459</a>
+<a href="#460" id="460">460</a>
+<a href="#461" id="461">461</a>
+<a href="#462" id="462">462</a>
+<a href="#463" id="463">463</a>
+<a href="#464" id="464">464</a>
+<a href="#465" id="465">465</a>
+<a href="#466" id="466">466</a>
+<a href="#467" id="467">467</a>
+<a href="#468" id="468">468</a>
+<a href="#469" id="469">469</a>
+<a href="#470" id="470">470</a>
+<a href="#471" id="471">471</a>
+<a href="#472" id="472">472</a>
+<a href="#473" id="473">473</a>
+<a href="#474" id="474">474</a>
+<a href="#475" id="475">475</a>
+<a href="#476" id="476">476</a>
+<a href="#477" id="477">477</a>
+<a href="#478" id="478">478</a>
+<a href="#479" id="479">479</a>
+<a href="#480" id="480">480</a>
+<a href="#481" id="481">481</a>
+<a href="#482" id="482">482</a>
+<a href="#483" id="483">483</a>
+<a href="#484" id="484">484</a>
+<a href="#485" id="485">485</a>
+<a href="#486" id="486">486</a>
+<a href="#487" id="487">487</a>
+<a href="#488" id="488">488</a>
+<a href="#489" id="489">489</a>
+<a href="#490" id="490">490</a>
+<a href="#491" id="491">491</a>
+<a href="#492" id="492">492</a>
+<a href="#493" id="493">493</a>
+<a href="#494" id="494">494</a>
+<a href="#495" id="495">495</a>
+<a href="#496" id="496">496</a>
+<a href="#497" id="497">497</a>
+<a href="#498" id="498">498</a>
+<a href="#499" id="499">499</a>
+<a href="#500" id="500">500</a>
+<a href="#501" id="501">501</a>
+<a href="#502" id="502">502</a>
+<a href="#503" id="503">503</a>
+<a href="#504" id="504">504</a>
+<a href="#505" id="505">505</a>
+<a href="#506" id="506">506</a>
+<a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
+<a href="#520" id="520">520</a>
+<a href="#521" id="521">521</a>
+<a href="#522" id="522">522</a>
+<a href="#523" id="523">523</a>
+<a href="#524" id="524">524</a>
+<a href="#525" id="525">525</a>
+<a href="#526" id="526">526</a>
+<a href="#527" id="527">527</a>
+<a href="#528" id="528">528</a>
+<a href="#529" id="529">529</a>
+<a href="#530" id="530">530</a>
+<a href="#531" id="531">531</a>
+<a href="#532" id="532">532</a>
+<a href="#533" id="533">533</a>
+<a href="#534" id="534">534</a>
+<a href="#535" id="535">535</a>
+<a href="#536" id="536">536</a>
+<a href="#537" id="537">537</a>
+<a href="#538" id="538">538</a>
+<a href="#539" id="539">539</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
@@ -324,10 +554,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-</span><span class="kw">use crate</span>::{ArrowError, Field, FieldRef, SchemaBuilder};
-<span class="kw">use </span>std::ops::Deref;
+</span><span class="kw">use </span>std::ops::Deref;
 <span class="kw">use </span>std::sync::Arc;
 
+<span class="kw">use crate</span>::{ArrowError, DataType, Field, FieldRef, SchemaBuilder};
+
 <span class="doccomment">/// A cheaply cloneable, owned slice of [`FieldRef`]
 ///
 /// Similar to `Arc&lt;Vec&lt;FieldRef&gt;&gt;` or `Arc&lt;[FieldRef]&gt;`
@@ -408,6 +639,108 @@
                 .all(|(a, b)| Arc::ptr_eq(a, b) || a.contains(b))
     }
 
+    <span class="doccomment">/// Returns a copy of this [`Fields`] containing only those [`FieldRef`] passing a predicate
+    ///
+    /// Performs a depth-first scan of [`Fields`] invoking `filter` for each [`FieldRef`]
+    /// containing no child [`FieldRef`], a leaf field, along with a count of the number
+    /// of such leaves encountered so far. Only [`FieldRef`] for which `filter`
+    /// returned `true` will be included in the result.
+    ///
+    /// This can therefore be used to select a subset of fields from nested types
+    /// such as [`DataType::Struct`] or [`DataType::List`].
+    ///
+    /// ```
+    /// # use arrow_schema::{DataType, Field, Fields};
+    /// let fields = Fields::from(vec![
+    ///     Field::new(&quot;a&quot;, DataType::Int32, true), // Leaf 0
+    ///     Field::new(&quot;b&quot;, DataType::Struct(Fields::from(vec![
+    ///         Field::new(&quot;c&quot;, DataType::Float32, false), // Leaf 1
+    ///         Field::new(&quot;d&quot;, DataType::Float64, false), // Leaf 2
+    ///         Field::new(&quot;e&quot;, DataType::Struct(Fields::from(vec![
+    ///             Field::new(&quot;f&quot;, DataType::Int32, false),   // Leaf 3
+    ///             Field::new(&quot;g&quot;, DataType::Float16, false), // Leaf 4
+    ///         ])), true),
+    ///     ])), false)
+    /// ]);
+    /// let filtered = fields.filter_leaves(|idx, _| [0, 2, 3, 4].contains(&amp;idx));
+    /// let expected = Fields::from(vec![
+    ///     Field::new(&quot;a&quot;, DataType::Int32, true),
+    ///     Field::new(&quot;b&quot;, DataType::Struct(Fields::from(vec![
+    ///         Field::new(&quot;d&quot;, DataType::Float64, false),
+    ///         Field::new(&quot;e&quot;, DataType::Struct(Fields::from(vec![
+    ///             Field::new(&quot;f&quot;, DataType::Int32, false),
+    ///             Field::new(&quot;g&quot;, DataType::Float16, false),
+    ///         ])), true),
+    ///     ])), false)
+    /// ]);
+    /// assert_eq!(filtered, expected);
+    /// ```
+    </span><span class="kw">pub fn </span>filter_leaves&lt;F: FnMut(usize, <span class="kw-2">&amp;</span>FieldRef) -&gt; bool&gt;(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="kw-2">mut </span>filter: F) -&gt; <span class="self">Self </span>{
+        <span class="kw">fn </span>filter_field&lt;F: FnMut(<span class="kw-2">&amp;</span>FieldRef) -&gt; bool&gt;(
+            f: <span class="kw-2">&amp;</span>FieldRef,
+            filter: <span class="kw-2">&amp;mut </span>F,
+        ) -&gt; <span class="prelude-ty">Option</span>&lt;FieldRef&gt; {
+            <span class="kw">use </span>DataType::<span class="kw-2">*</span>;
+
+            <span class="kw">let </span>v = <span class="kw">match </span>f.data_type() {
+                Dictionary(<span class="kw">_</span>, v) =&gt; v.as_ref(),       <span class="comment">// Key must be integer
+                </span>RunEndEncoded(<span class="kw">_</span>, v) =&gt; v.data_type(), <span class="comment">// Run-ends must be integer
+                </span>d =&gt; d,
+            };
+            <span class="kw">let </span>d = <span class="kw">match </span>v {
+                List(child) =&gt; List(filter_field(child, filter)<span class="question-mark">?</span>),
+                LargeList(child) =&gt; LargeList(filter_field(child, filter)<span class="question-mark">?</span>),
+                Map(child, ordered) =&gt; Map(filter_field(child, filter)<span class="question-mark">?</span>, <span class="kw-2">*</span>ordered),
+                FixedSizeList(child, size) =&gt; FixedSizeList(filter_field(child, filter)<span class="question-mark">?</span>, <span class="kw-2">*</span>size),
+                Struct(fields) =&gt; {
+                    <span class="kw">let </span>filtered: Fields = fields
+                        .iter()
+                        .filter_map(|f| filter_field(f, filter))
+                        .collect();
+
+                    <span class="kw">if </span>filtered.is_empty() {
+                        <span class="kw">return </span><span class="prelude-val">None</span>;
+                    }
+
+                    Struct(filtered)
+                }
+                Union(fields, mode) =&gt; {
+                    <span class="kw">let </span>filtered: UnionFields = fields
+                        .iter()
+                        .filter_map(|(id, f)| <span class="prelude-val">Some</span>((id, filter_field(f, filter)<span class="question-mark">?</span>)))
+                        .collect();
+
+                    <span class="kw">if </span>filtered.is_empty() {
+                        <span class="kw">return </span><span class="prelude-val">None</span>;
+                    }
+
+                    Union(filtered, <span class="kw-2">*</span>mode)
+                }
+                <span class="kw">_ </span>=&gt; <span class="kw">return </span>filter(f).then(|| f.clone()),
+            };
+            <span class="kw">let </span>d = <span class="kw">match </span>f.data_type() {
+                Dictionary(k, <span class="kw">_</span>) =&gt; Dictionary(k.clone(), Box::new(d)),
+                RunEndEncoded(v, f) =&gt; {
+                    RunEndEncoded(v.clone(), Arc::new(f.as_ref().clone().with_data_type(d)))
+                }
+                <span class="kw">_ </span>=&gt; d,
+            };
+            <span class="prelude-val">Some</span>(Arc::new(f.as_ref().clone().with_data_type(d)))
+        }
+
+        <span class="kw">let </span><span class="kw-2">mut </span>leaf_idx = <span class="number">0</span>;
+        <span class="kw">let </span><span class="kw-2">mut </span>filter = |f: <span class="kw-2">&amp;</span>FieldRef| {
+            <span class="kw">let </span>t = filter(leaf_idx, f);
+            leaf_idx += <span class="number">1</span>;
+            t
+        };
+
+        <span class="self">self</span>.<span class="number">0
+            </span>.iter()
+            .filter_map(|f| filter_field(f, <span class="kw-2">&amp;mut </span>filter))
+            .collect()
+    }
+
     <span class="doccomment">/// Remove a field by index and return it.
     ///
     /// # Panic
@@ -616,4 +949,131 @@
         </span><span class="self">Self</span>(iter.into_iter().collect())
     }
 }
+
+<span class="attr">#[cfg(test)]
+</span><span class="kw">mod </span>tests {
+    <span class="kw">use super</span>::<span class="kw-2">*</span>;
+    <span class="kw">use </span><span class="kw">crate</span>::UnionMode;
+
+    <span class="attr">#[test]
+    </span><span class="kw">fn </span>test_filter() {
+        <span class="kw">let </span>floats = Fields::from(<span class="macro">vec!</span>[
+            Field::new(<span class="string">&quot;a&quot;</span>, DataType::Float32, <span class="bool-val">false</span>),
+            Field::new(<span class="string">&quot;b&quot;</span>, DataType::Float32, <span class="bool-val">false</span>),
+        ]);
+        <span class="kw">let </span>fields = Fields::from(<span class="macro">vec!</span>[
+            Field::new(<span class="string">&quot;a&quot;</span>, DataType::Int32, <span class="bool-val">true</span>),
+            Field::new(<span class="string">&quot;floats&quot;</span>, DataType::Struct(floats.clone()), <span class="bool-val">true</span>),
+            Field::new(<span class="string">&quot;b&quot;</span>, DataType::Int16, <span class="bool-val">true</span>),
+            Field::new(
+                <span class="string">&quot;c&quot;</span>,
+                DataType::Dictionary(Box::new(DataType::Int32), Box::new(DataType::Utf8)),
+                <span class="bool-val">false</span>,
+            ),
+            Field::new(
+                <span class="string">&quot;d&quot;</span>,
+                DataType::Dictionary(
+                    Box::new(DataType::Int32),
+                    Box::new(DataType::Struct(floats.clone())),
+                ),
+                <span class="bool-val">false</span>,
+            ),
+            Field::new_list(
+                <span class="string">&quot;e&quot;</span>,
+                Field::new(<span class="string">&quot;floats&quot;</span>, DataType::Struct(floats.clone()), <span class="bool-val">true</span>),
+                <span class="bool-val">true</span>,
+            ),
+            Field::new(
+                <span class="string">&quot;f&quot;</span>,
+                DataType::FixedSizeList(Arc::new(Field::new(<span class="string">&quot;item&quot;</span>, DataType::Int32, <span class="bool-val">false</span>)), <span class="number">3</span>),
+                <span class="bool-val">false</span>,
+            ),
+            Field::new_map(
+                <span class="string">&quot;g&quot;</span>,
+                <span class="string">&quot;entries&quot;</span>,
+                Field::new(<span class="string">&quot;keys&quot;</span>, DataType::LargeUtf8, <span class="bool-val">false</span>),
+                Field::new(<span class="string">&quot;values&quot;</span>, DataType::Int32, <span class="bool-val">true</span>),
+                <span class="bool-val">false</span>,
+                <span class="bool-val">false</span>,
+            ),
+            Field::new(
+                <span class="string">&quot;h&quot;</span>,
+                DataType::Union(
+                    UnionFields::new(
+                        <span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">3</span>],
+                        <span class="macro">vec!</span>[
+                            Field::new(<span class="string">&quot;field1&quot;</span>, DataType::UInt8, <span class="bool-val">false</span>),
+                            Field::new(<span class="string">&quot;field3&quot;</span>, DataType::Utf8, <span class="bool-val">false</span>),
+                        ],
+                    ),
+                    UnionMode::Dense,
+                ),
+                <span class="bool-val">true</span>,
+            ),
+            Field::new(
+                <span class="string">&quot;i&quot;</span>,
+                DataType::RunEndEncoded(
+                    Arc::new(Field::new(<span class="string">&quot;run_ends&quot;</span>, DataType::Int32, <span class="bool-val">false</span>)),
+                    Arc::new(Field::new(<span class="string">&quot;values&quot;</span>, DataType::Struct(floats.clone()), <span class="bool-val">true</span>)),
+                ),
+                <span class="bool-val">false</span>,
+            ),
+        ]);
+
+        <span class="kw">let </span>floats_a = DataType::Struct(<span class="macro">vec!</span>[floats[<span class="number">0</span>].clone()].into());
+
+        <span class="kw">let </span>r = fields.filter_leaves(|idx, <span class="kw">_</span>| idx == <span class="number">0 </span>|| idx == <span class="number">1</span>);
+        <span class="macro">assert_eq!</span>(r.len(), <span class="number">2</span>);
+        <span class="macro">assert_eq!</span>(r[<span class="number">0</span>], fields[<span class="number">0</span>]);
+        <span class="macro">assert_eq!</span>(r[<span class="number">1</span>].data_type(), <span class="kw-2">&amp;</span>floats_a);
+
+        <span class="kw">let </span>r = fields.filter_leaves(|<span class="kw">_</span>, f| f.name() == <span class="string">&quot;a&quot;</span>);
+        <span class="macro">assert_eq!</span>(r.len(), <span class="number">5</span>);
+        <span class="macro">assert_eq!</span>(r[<span class="number">0</span>], fields[<span class="number">0</span>]);
+        <span class="macro">assert_eq!</span>(r[<span class="number">1</span>].data_type(), <span class="kw-2">&amp;</span>floats_a);
+        <span class="macro">assert_eq!</span>(
+            r[<span class="number">2</span>].data_type(),
+            <span class="kw-2">&amp;</span>DataType::Dictionary(Box::new(DataType::Int32), Box::new(floats_a.clone()))
+        );
+        <span class="macro">assert_eq!</span>(
+            r[<span class="number">3</span>].as_ref(),
+            <span class="kw-2">&amp;</span>Field::new_list(<span class="string">&quot;e&quot;</span>, Field::new(<span class="string">&quot;floats&quot;</span>, floats_a.clone(), <span class="bool-val">true</span>), <span class="bool-val">true</span>)
+        );
+        <span class="macro">assert_eq!</span>(
+            r[<span class="number">4</span>].as_ref(),
+            <span class="kw-2">&amp;</span>Field::new(
+                <span class="string">&quot;i&quot;</span>,
+                DataType::RunEndEncoded(
+                    Arc::new(Field::new(<span class="string">&quot;run_ends&quot;</span>, DataType::Int32, <span class="bool-val">false</span>)),
+                    Arc::new(Field::new(<span class="string">&quot;values&quot;</span>, floats_a.clone(), <span class="bool-val">true</span>)),
+                ),
+                <span class="bool-val">false</span>,
+            )
+        );
+
+        <span class="kw">let </span>r = fields.filter_leaves(|<span class="kw">_</span>, f| f.name() == <span class="string">&quot;floats&quot;</span>);
+        <span class="macro">assert_eq!</span>(r.len(), <span class="number">0</span>);
+
+        <span class="kw">let </span>r = fields.filter_leaves(|idx, <span class="kw">_</span>| idx == <span class="number">9</span>);
+        <span class="macro">assert_eq!</span>(r.len(), <span class="number">1</span>);
+        <span class="macro">assert_eq!</span>(r[<span class="number">0</span>], fields[<span class="number">6</span>]);
+
+        <span class="kw">let </span>r = fields.filter_leaves(|idx, <span class="kw">_</span>| idx == <span class="number">10 </span>|| idx == <span class="number">11</span>);
+        <span class="macro">assert_eq!</span>(r.len(), <span class="number">1</span>);
+        <span class="macro">assert_eq!</span>(r[<span class="number">0</span>], fields[<span class="number">7</span>]);
+
+        <span class="kw">let </span>union = DataType::Union(
+            UnionFields::new(<span class="macro">vec!</span>[<span class="number">1</span>], <span class="macro">vec!</span>[Field::new(<span class="string">&quot;field1&quot;</span>, DataType::UInt8, <span class="bool-val">false</span>)]),
+            UnionMode::Dense,
+        );
+
+        <span class="kw">let </span>r = fields.filter_leaves(|idx, <span class="kw">_</span>| idx == <span class="number">12</span>);
+        <span class="macro">assert_eq!</span>(r.len(), <span class="number">1</span>);
+        <span class="macro">assert_eq!</span>(r[<span class="number">0</span>].data_type(), <span class="kw-2">&amp;</span>union);
+
+        <span class="kw">let </span>r = fields.filter_leaves(|idx, <span class="kw">_</span>| idx == <span class="number">14 </span>|| idx == <span class="number">15</span>);
+        <span class="macro">assert_eq!</span>(r.len(), <span class="number">1</span>);
+        <span class="macro">assert_eq!</span>(r[<span class="number">0</span>], fields[<span class="number">9</span>]);
+    }
+}
 </code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js
index 2babbb1c81..c4e42f6179 100644
--- a/trait.impl/core/clone/trait.Clone.js
+++ b/trait.impl/core/clone/trait.Clone.js
@@ -19,7 +19,7 @@
 "arrow_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"arrow_select/take/struct.TakeOptions.html\" title=\"struct arrow_select::take::TakeOptions\">TakeOptions</a>"]],
 "flight_test_integration_client":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"flight_test_integration_client/enum.Scenario.html\" title=\"enum flight_test_integration_client::Scenario\">Scenario</a>"]],
 "flight_test_integration_server":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"flight_test_integration_server/enum.Scenario.html\" title=\"enum flight_test_integration_server::Scenario\">Scenario</a>"]],
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"parquet/format/struct.FileCryptoMetaData.html\" title=\"struct parquet::format::FileCryptoMetaData\">FileCryptoMetaData</a>"],["impl&lt;T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> + <a class=\"trait\" href=\"parque [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"parquet/format/struct.Float16Type.html\" title=\"struct parquet::format::Float16Type\">Float16Type</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"parquet/data_type/struct.Int32 [...]
 "parquet_fromcsv":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"parquet_fromcsv/enum.CsvDialect.html\" title=\"enum parquet_fromcsv::CsvDialect\">CsvDialect</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"parquet_fromcsv/enum.RecordTermi [...]
 "parquet_rewrite":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"parquet_rewrite/enum.EnabledStatisticsArgs.html\" title=\"enum parquet_rewrite::EnabledStatisticsArgs\">EnabledStatisticsArgs</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\ [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/cmp/trait.Eq.js b/trait.impl/core/cmp/trait.Eq.js
index 6b06fdda10..3fa80ba70e 100644
--- a/trait.impl/core/cmp/trait.Eq.js
+++ b/trait.impl/core/cmp/trait.Eq.js
@@ -9,6 +9,6 @@
 "arrow_json":[["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=\"enum\" href=\"arrow_json/reader/tape/enum.TapeElement.html\" title=\"enum arrow_json::reader::tape::TapeElement\">TapeElement</a>"]],
 "arrow_row":[["impl&lt;'a&gt; <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=\"arrow_row/struct.Row.html\" title=\"struct arrow_row::Row\">Row</a>&lt;'a&gt;"],["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=\"arrow_row/struct.OwnedRow.html\" title=\"struct arrow_row::OwnedRow\" [...]
 "arrow_schema":[["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=\"arrow_schema/field/struct.Field.html\" title=\"struct arrow_schema::field::Field\">Field</a>"],["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=\"arrow_schema/fields/struct.Fields.html\" title=\"struct arrow [...]
-"parquet":[["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=\"parquet/format/struct.KeyValue.html\" title=\"struct parquet::format::KeyValue\">KeyValue</a>"],["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=\"parquet/format/struct.ColumnMetaData.html\" title=\"struct parque [...]
+"parquet":[["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=\"parquet/format/struct.FileCryptoMetaData.html\" title=\"struct parquet::format::FileCryptoMetaData\">FileCryptoMetaData</a>"],["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=\"parquet/format/struct.DateType.html [...]
 "parquet_rewrite":[["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=\"enum\" href=\"parquet_rewrite/enum.EnabledStatisticsArgs.html\" title=\"enum parquet_rewrite::EnabledStatisticsArgs\">EnabledStatisticsArgs</a>"],["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=\"enum\" href=\"parquet_rewrite/enum.Comp [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/cmp/trait.Ord.js b/trait.impl/core/cmp/trait.Ord.js
index ddaa19124f..97b148b71d 100644
--- a/trait.impl/core/cmp/trait.Ord.js
+++ b/trait.impl/core/cmp/trait.Ord.js
@@ -4,6 +4,6 @@
 "arrow_ipc":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"arrow_ipc/gen/SparseTensor/struct.SparseMatrixCompressedAxis.html\" title=\"struct arrow_ipc::gen::SparseTensor::SparseMatrixCompressedAxis\">SparseMatrixCompressedAxis</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a cl [...]
 "arrow_row":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"arrow_row/struct.OwnedRow.html\" title=\"struct arrow_row::OwnedRow\">OwnedRow</a>"],["impl&lt;'a&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"arrow_row/struct.Row.html\" title=\"struct arrow_row::Row\ [...]
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"arrow_schema/datatype/enum.TimeUnit.html\" title=\"enum arrow_schema::datatype::TimeUnit\">TimeUnit</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"arrow_schema/field/struct.Field.html\" title=\ [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"parquet/format/struct.PageLocation.html\" title=\"struct parquet::format::PageLocation\">PageLocation</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"parquet/format/struct.PageHeader.html\" title=\ [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"parquet/format/struct.PageEncodingStats.html\" title=\"struct parquet::format::PageEncodingStats\">PageEncodingStats</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"struct\" href=\"parquet/format/struct.SplitBlock [...]
 "parquet_rewrite":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"parquet_rewrite/enum.EnabledStatisticsArgs.html\" title=\"enum parquet_rewrite::EnabledStatisticsArgs\">EnabledStatisticsArgs</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html\" title=\"trait core::cmp::Ord\">Ord</a> for <a class=\"enum\" href=\"parquet_rewrite/enu [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/cmp/trait.PartialEq.js b/trait.impl/core/cmp/trait.PartialEq.js
index 2beca904a5..74e394dbb3 100644
--- a/trait.impl/core/cmp/trait.PartialEq.js
+++ b/trait.impl/core/cmp/trait.PartialEq.js
@@ -9,7 +9,7 @@
 "arrow_json":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" href=\"arrow_json/reader/tape/enum.TapeElement.html\" title=\"enum arrow_json::reader::tape::TapeElement\">TapeElement</a>"]],
 "arrow_row":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"struct\" href=\"arrow_row/struct.OwnedRow.html\" title=\"struct arrow_row::OwnedRow\">OwnedRow</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"struct\" href=\"arrow_row/struct.SortField.html\ [...]
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"struct\" href=\"arrow_schema/struct.SortOptions.html\" title=\"struct arrow_schema::SortOptions\">SortOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" href=\"arrow_schema/dat [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"struct\" href=\"parquet/format/struct.EncryptionWithColumnKey.html\" title=\"struct parquet::format::EncryptionWithColumnKey\">EncryptionWithColumnKey</a>"],["impl&lt;T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> + < [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"struct\" href=\"parquet/format/struct.RowGroup.html\" title=\"struct parquet::format::RowGroup\">RowGroup</a>"],["impl&lt;T: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a>&gt; <a class=\"trait\" href=\"https://doc.rust-l [...]
 "parquet_derive":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" href=\"parquet_derive/parquet_field/enum.ThirdPartyType.html\" title=\"enum parquet_derive::parquet_field::ThirdPartyType\">ThirdPartyType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a  [...]
 "parquet_derive_test":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"struct\" href=\"parquet_derive_test/struct.APartiallyCompleteRecord.html\" title=\"struct parquet_derive_test::APartiallyCompleteRecord\">APartiallyCompleteRecord</a>"]],
 "parquet_fromcsv":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" href=\"parquet_fromcsv/enum.RecordTerminator.html\" title=\"enum parquet_fromcsv::RecordTerminator\">RecordTerminator</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" href= [...]
diff --git a/trait.impl/core/cmp/trait.PartialOrd.js b/trait.impl/core/cmp/trait.PartialOrd.js
index b6508fc7e2..001c267bd8 100644
--- a/trait.impl/core/cmp/trait.PartialOrd.js
+++ b/trait.impl/core/cmp/trait.PartialOrd.js
@@ -4,6 +4,6 @@
 "arrow_ipc":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"struct\" href=\"arrow_ipc/gen/Message/struct.CompressionType.html\" title=\"struct arrow_ipc::gen::Message::CompressionType\">CompressionType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a cla [...]
 "arrow_row":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"struct\" href=\"arrow_row/struct.OwnedRow.html\" title=\"struct arrow_row::OwnedRow\">OwnedRow</a>"],["impl&lt;'a&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"struct\" href=\"arrow_row/struct [...]
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"struct\" href=\"arrow_schema/field/struct.Field.html\" title=\"struct arrow_schema::field::Field\">Field</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"struct\" href=\"arrow_schema/ [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"struct\" href=\"parquet/format/struct.DecimalType.html\" title=\"struct parquet::format::DecimalType\">DecimalType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"struct\" href=\"parquet/ [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"struct\" href=\"parquet/format/struct.MicroSeconds.html\" title=\"struct parquet::format::MicroSeconds\">MicroSeconds</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"struct\" href=\"parqu [...]
 "parquet_rewrite":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"enum\" href=\"parquet_rewrite/enum.CompressionArgs.html\" title=\"enum parquet_rewrite::CompressionArgs\">CompressionArgs</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html\" title=\"trait core::cmp::PartialOrd\">PartialOrd</a> for <a class=\"enum\" hr [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/convert/trait.From.js b/trait.impl/core/convert/trait.From.js
index 8ed8d3158a..a3b6215319 100644
--- a/trait.impl/core/convert/trait.From.js
+++ b/trait.impl/core/convert/trait.From.js
@@ -8,7 +8,7 @@
 "arrow_integration_test":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;&amp;<a class=\"struct\" href=\"arrow_schema/field/struct.Field.html\" title=\"struct arrow_schema::field::Field\">Field</a>&gt; for <a class=\"struct\" href=\"arrow_integration_test/struct.ArrowJsonField.html\" title=\"struct arrow_integration_test::ArrowJsonField\">ArrowJsonField</a>"],["impl <a class=\"trait\" href= [...]
 "arrow_ipc":[["impl&lt;'a&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;<a class=\"struct\" href=\"arrow_ipc/gen/Schema/struct.Field.html\" title=\"struct arrow_ipc::gen::Schema::Field\">Field</a>&lt;'a&gt;&gt; for <a class=\"struct\" href=\"arrow_schema/field/struct.Field.html\" title=\"struct arrow_schema::field::Field\">Field</a>"]],
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;<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=\"https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html\" title=\"struct alloc::sync::Arc\">Arc</a>&lt;<a class=\"struct\" href=\"arrow_schema/field/struct.Field.htm [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;<a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html\" title=\"struct std::io::error::Error\">Error</a>&gt; for <a class=\"enum\" href=\"parquet/errors/enum.ParquetError.html\" title=\"enum parquet::errors::ParquetError\">ParquetError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang. [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;&amp;<a class=\"struct\" href=\"parquet/format/struct.ConvertedType.html\" title=\"struct parquet::format::ConvertedType\">ConvertedType</a>&gt; for <a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.i32.html\">i32</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.F [...]
 "parquet_fromcsv":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;<a class=\"enum\" href=\"parquet/errors/enum.ParquetError.html\" title=\"enum parquet::errors::ParquetError\">ParquetError</a>&gt; for <a class=\"enum\" href=\"parquet_fromcsv/enum.ParquetFromCsvError.html\" title=\"enum parquet_fromcsv::ParquetFromCsvError\">ParquetFromCsvError</a>"],["impl <a class=\"trait\" href=\"https:// [...]
 "parquet_rewrite":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;<a class=\"enum\" href=\"parquet_rewrite/enum.WriterVersionArgs.html\" title=\"enum parquet_rewrite::WriterVersionArgs\">WriterVersionArgs</a>&gt; for <a class=\"enum\" href=\"parquet/file/properties/enum.WriterVersion.html\" title=\"enum parquet::file::properties::WriterVersion\">WriterVersion</a>"],["impl <a class=\"trait\" [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/convert/trait.TryFrom.js b/trait.impl/core/convert/trait.TryFrom.js
index 1615f4fbb6..beffebf0cd 100644
--- a/trait.impl/core/convert/trait.TryFrom.js
+++ b/trait.impl/core/convert/trait.TryFrom.js
@@ -3,5 +3,5 @@
 "arrow_flight":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html\" title=\"trait core::convert::TryFrom\">TryFrom</a>&lt;<a class=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.i32.html\">i32</a>&gt; for <a class=\"enum\" href=\"arrow_flight/sql/gen/action_end_transaction_request/enum.EndTransaction.html\" title=\"enum arrow_flight::sql::gen::action_end_transaction_request::EndTransaction\">EndTransaction</a>"],["imp [...]
 "arrow_ipc":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html\" title=\"trait core::convert::TryFrom\">TryFrom</a>&lt;<a class=\"struct\" href=\"arrow_ipc/gen/Message/struct.CompressionType.html\" title=\"struct arrow_ipc::gen::Message::CompressionType\">CompressionType</a>&gt; for <a class=\"enum\" href=\"arrow_ipc/compression/enum.CompressionCodec.html\" title=\"enum arrow_ipc::compression::CompressionCodec\">CompressionCodec</a>"]],
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html\" title=\"trait core::convert::TryFrom\">TryFrom</a>&lt;&amp;<a class=\"struct\" href=\"arrow_schema/schema/struct.Schema.html\" title=\"struct arrow_schema::schema::Schema\">Schema</a>&gt; for <a class=\"struct\" href=\"arrow_schema/ffi/struct.FFI_ArrowSchema.html\" title=\"struct arrow_schema::ffi::FFI_ArrowSchema\">FFI_ArrowSchema</a>"],["impl <a class=\"trait\" href=\"ht [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html\" title=\"trait core::convert::TryFrom\">TryFrom</a>&lt;<a class=\"struct\" href=\"parquet/format/struct.CompressionCodec.html\" title=\"struct parquet::format::CompressionCodec\">CompressionCodec</a>&gt; for <a class=\"enum\" href=\"parquet/basic/enum.Compression.html\" title=\"enum parquet::basic::Compression\">Compression</a>"],["impl&lt;'a&gt; <a class=\"trait\" href=\"https: [...]
+"parquet":[["impl&lt;'a&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html\" title=\"trait core::convert::TryFrom\">TryFrom</a>&lt;&amp;'a <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/std/path/struct.Path.html\" title=\"struct std::path::Path\">Path</a>&gt; for <a class=\"struct\" href=\"parquet/file/serialized_reader/struct.SerializedFileReader.html\" title=\"struct parquet::file::serialized_reader::SerializedFileReader\">Seri [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/default/trait.Default.js b/trait.impl/core/default/trait.Default.js
index ac1389379c..4c6df49984 100644
--- a/trait.impl/core/default/trait.Default.js
+++ b/trait.impl/core/default/trait.Default.js
@@ -11,5 +11,5 @@
 "arrow_json":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"arrow_json/writer/struct.WriterBuilder.html\" title=\"struct arrow_json::writer::WriterBuilder\">WriterBuilder</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" hr [...]
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"arrow_schema/struct.SortOptions.html\" title=\"struct arrow_schema::SortOptions\">SortOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"arrow_sche [...]
 "arrow_select":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"arrow_select/take/struct.TakeOptions.html\" title=\"struct arrow_select::take::TakeOptions\">TakeOptions</a>"]],
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"parquet/format/struct.AesGcmCtrV1.html\" title=\"struct parquet::format::AesGcmCtrV1\">AesGcmCtrV1</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"parquet/ar [...]
+"parquet":[["impl&lt;I: <a class=\"trait\" href=\"parquet/arrow/record_reader/buffer/trait.ScalarValue.html\" title=\"trait parquet::arrow::record_reader::buffer::ScalarValue\">ScalarValue</a>&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"parquet/arrow/buffer/offset_buffer/struct.OffsetBuffer.html\" title=\"struct parquet::arrow::buffer::offset_buffer::Off [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/fmt/trait.Debug.js b/trait.impl/core/fmt/trait.Debug.js
index db0af34074..4b54528fac 100644
--- a/trait.impl/core/fmt/trait.Debug.js
+++ b/trait.impl/core/fmt/trait.Debug.js
@@ -22,7 +22,7 @@
 "flight_sql_client":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"flight_sql_client/struct.Args.html\" title=\"struct flight_sql_client::Args\">Args</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"flight_sql_client/struct.ClientArgs.html\" t [...]
 "flight_test_integration_client":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"flight_test_integration_client/enum.Scenario.html\" title=\"enum flight_test_integration_client::Scenario\">Scenario</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\ [...]
 "flight_test_integration_server":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"flight_test_integration_server/enum.Scenario.html\" title=\"enum flight_test_integration_server::Scenario\">Scenario</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\ [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"parquet/errors/enum.ParquetError.html\" title=\"enum parquet::errors::ParquetError\">ParquetError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"parquet/format/struct.AesGcmV1.html\" tit [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"parquet/basic/enum.Repetition.html\" title=\"enum parquet::basic::Repetition\">Repetition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"parquet/format/enum.BloomFilterAlgorithm.html\" tit [...]
 "parquet_concat":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"parquet_concat/struct.Args.html\" title=\"struct parquet_concat::Args\">Args</a>"]],
 "parquet_derive":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"parquet_derive/parquet_field/struct.Field.html\" title=\"struct parquet_derive::parquet_field::Field\">Field</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" href=\"parquet_derive/parquet_ [...]
 "parquet_derive_test":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"parquet_derive_test/struct.APartiallyCompleteRecord.html\" title=\"struct parquet_derive_test::APartiallyCompleteRecord\">APartiallyCompleteRecord</a>"]],
diff --git a/trait.impl/core/fmt/trait.Display.js b/trait.impl/core/fmt/trait.Display.js
index 872b883ae4..360497a5c2 100644
--- a/trait.impl/core/fmt/trait.Display.js
+++ b/trait.impl/core/fmt/trait.Display.js
@@ -9,6 +9,6 @@
 "arrow_ord":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"arrow_ord/cmp/enum.Op.html\" title=\"enum arrow_ord::cmp::Op\">Op</a>"]],
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"arrow_schema/datatype/enum.DataType.html\" title=\"enum arrow_schema::datatype::DataType\">DataType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"arrow_schema/field/str [...]
 "arrow_string":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"arrow_string/like/enum.Op.html\" title=\"enum arrow_string::like::Op\">Op</a>"]],
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"parquet/basic/enum.PageType.html\" title=\"enum parquet::basic::PageType\">PageType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"parquet/basic/enum.SortOrder.html\" title=\"e [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"parquet/errors/enum.ParquetError.html\" title=\"enum parquet::errors::ParquetError\">ParquetError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"parquet/record/api/enum.Field.h [...]
 "parquet_fromcsv":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"parquet_fromcsv/enum.ParquetFromCsvError.html\" title=\"enum parquet_fromcsv::ParquetFromCsvError\">ParquetFromCsvError</a>"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/hash/trait.Hash.js b/trait.impl/core/hash/trait.Hash.js
index 43331eead9..77ebd1e80f 100644
--- a/trait.impl/core/hash/trait.Hash.js
+++ b/trait.impl/core/hash/trait.Hash.js
@@ -6,5 +6,5 @@
 "arrow_ipc":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"arrow_ipc/gen/Schema/struct.IntervalUnit.html\" title=\"struct arrow_ipc::gen::Schema::IntervalUnit\">IntervalUnit</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"arrow_ipc/gen/Schema/s [...]
 "arrow_row":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"arrow_row/struct.OwnedRow.html\" title=\"struct arrow_row::OwnedRow\">OwnedRow</a>"],["impl&lt;'a&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"arrow_row/struct.Row.html\" title=\"struct arrow [...]
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"arrow_schema/schema/struct.Schema.html\" title=\"struct arrow_schema::schema::Schema\">Schema</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"arrow_schema/datatype/enum.DataType.html\" [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"parquet/format/enum.ColumnCryptoMetaData.html\" title=\"enum parquet::format::ColumnCryptoMetaData\">ColumnCryptoMetaData</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"parquet/format/stru [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"parquet/format/struct.TimeType.html\" title=\"struct parquet::format::TimeType\">TimeType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"parquet/schema/types/struct.ColumnPath.html\" tit [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/iter/traits/iterator/trait.Iterator.js b/trait.impl/core/iter/traits/iterator/trait.Iterator.js
index 4a776b6985..ffb058febd 100644
--- a/trait.impl/core/iter/traits/iterator/trait.Iterator.js
+++ b/trait.impl/core/iter/traits/iterator/trait.Iterator.js
@@ -7,5 +7,5 @@
 "arrow_json":[["impl&lt;'a&gt; <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> for <a class=\"struct\" href=\"arrow_json/reader/tape/struct.BufIter.html\" title=\"struct arrow_json::reader::tape::BufIter\">BufIter</a>&lt;'a&gt;"],["impl&lt;R: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.BufRead.html\" title=\"trait std::io::BufRead\"> [...]
 "arrow_row":[["impl&lt;'a&gt; <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> for <a class=\"struct\" href=\"arrow_row/struct.RowsIter.html\" title=\"struct arrow_row::RowsIter\">RowsIter</a>&lt;'a&gt;"]],
 "arrow_select":[["impl&lt;'a&gt; <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> for <a class=\"struct\" href=\"arrow_select/filter/struct.SlicesIterator.html\" title=\"struct arrow_select::filter::SlicesIterator\">SlicesIterator</a>&lt;'a&gt;"],["impl&lt;'a&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator. [...]
-"parquet":[["impl&lt;'a&gt; <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> for <a class=\"struct\" href=\"parquet/schema/parser/struct.Tokenizer.html\" title=\"struct parquet::schema::parser::Tokenizer\">Tokenizer</a>&lt;'a&gt;"],["impl&lt;'a&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html\" title=\" [...]
+"parquet":[["impl&lt;'a&gt; <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> for <a class=\"struct\" href=\"parquet/record/reader/struct.RowIter.html\" title=\"struct parquet::record::reader::RowIter\">RowIter</a>&lt;'a&gt;"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/marker/trait.Copy.js b/trait.impl/core/marker/trait.Copy.js
index 750afcca1c..77ee037766 100644
--- a/trait.impl/core/marker/trait.Copy.js
+++ b/trait.impl/core/marker/trait.Copy.js
@@ -11,7 +11,7 @@
 "arrow_ord":[["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=\"enum\" href=\"arrow_ord/cmp/enum.Op.html\" title=\"enum arrow_ord::cmp::Op\">Op</a>"]],
 "arrow_row":[["impl&lt;'a&gt; <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\" href=\"arrow_row/struct.Row.html\" title=\"struct arrow_row::Row\">Row</a>&lt;'a&gt;"]],
 "arrow_schema":[["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\" href=\"arrow_schema/struct.SortOptions.html\" title=\"struct arrow_schema::SortOptions\">SortOptions</a>"],["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=\"enum\" href=\"arrow_schema/datatype/enum.UnionMo [...]
-"parquet":[["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\" href=\"parquet/basic/struct.GzipLevel.html\" title=\"struct parquet::basic::GzipLevel\">GzipLevel</a>"],["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=\"enum\" href=\"parquet/basic/enum.Compression.html\" titl [...]
+"parquet":[["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\" href=\"parquet/basic/struct.GzipLevel.html\" title=\"struct parquet::basic::GzipLevel\">GzipLevel</a>"],["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\" href=\"parquet/format/struct.ConvertedType.html [...]
 "parquet_fromcsv":[["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=\"enum\" href=\"parquet_fromcsv/enum.CsvDialect.html\" title=\"enum parquet_fromcsv::CsvDialect\">CsvDialect</a>"],["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=\"enum\" href=\"parquet_fromcsv/enum.RecordTermina [...]
 "parquet_rewrite":[["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=\"enum\" href=\"parquet_rewrite/enum.WriterVersionArgs.html\" title=\"enum parquet_rewrite::WriterVersionArgs\">WriterVersionArgs</a>"],["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=\"enum\" href=\"parquet_rewri [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/marker/trait.StructuralEq.js b/trait.impl/core/marker/trait.StructuralEq.js
index c3333b46bf..596b8c46a5 100644
--- a/trait.impl/core/marker/trait.StructuralEq.js
+++ b/trait.impl/core/marker/trait.StructuralEq.js
@@ -8,6 +8,6 @@
 "arrow_json":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"arrow_json/reader/tape/enum.TapeElement.html\" title=\"enum arrow_json::reader::tape::TapeElement\">TapeElement</a>"]],
 "arrow_row":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"arrow_row/struct.SortField.html\" title=\"struct arrow_row::SortField\">SortField</a>"]],
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"arrow_schema/struct.SortOptions.html\" title=\"struct arrow_schema::SortOptions\">SortOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\" [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"parquet/format/struct.PageLocation.html\" title=\"struct parquet::format::PageLocation\">PageLocation</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"parquet/format/struct.ListType.html\" title=\"struct parquet::format::ListType\">ListType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" hr [...]
 "parquet_rewrite":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"parquet_rewrite/enum.EnabledStatisticsArgs.html\" title=\"enum parquet_rewrite::EnabledStatisticsArgs\">EnabledStatisticsArgs</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\" [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/core/marker/trait.StructuralPartialEq.js b/trait.impl/core/marker/trait.StructuralPartialEq.js
index 14d4d829a8..96a4f22377 100644
--- a/trait.impl/core/marker/trait.StructuralPartialEq.js
+++ b/trait.impl/core/marker/trait.StructuralPartialEq.js
@@ -9,7 +9,7 @@
 "arrow_json":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"arrow_json/reader/tape/enum.TapeElement.html\" title=\"enum arrow_json::reader::tape::TapeElement\">TapeElement</a>"]],
 "arrow_row":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"arrow_row/struct.SortField.html\" title=\"struct arrow_row::SortField\">SortField</a>"]],
 "arrow_schema":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"arrow_schema/schema/struct.Schema.html\" title=\"struct arrow_schema::schema::Schema\">Schema</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"parquet/format/struct.DecimalType.html\" title=\"struct parquet::format::DecimalType\">DecimalType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"parquet/format/enum.ColumnCryptoMetaData.html\" title=\"enum parquet::format::ColumnCryptoMetaData\">ColumnCryptoMetaData</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker [...]
 "parquet_derive":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"parquet_derive/parquet_field/enum.ThirdPartyType.html\" title=\"enum parquet_derive::parquet_field::ThirdPartyType\">ThirdPartyType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"t [...]
 "parquet_derive_test":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"parquet_derive_test/struct.APartiallyCompleteRecord.html\" title=\"struct parquet_derive_test::APartiallyCompleteRecord\">APartiallyCompleteRecord</a>"]],
 "parquet_fromcsv":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"parquet_fromcsv/enum.CsvDialect.html\" title=\"enum parquet_fromcsv::CsvDialect\">CsvDialect</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq [...]
diff --git a/trait.impl/core/str/traits/trait.FromStr.js b/trait.impl/core/str/traits/trait.FromStr.js
index cde3a6ff76..e51835a6a8 100644
--- a/trait.impl/core/str/traits/trait.FromStr.js
+++ b/trait.impl/core/str/traits/trait.FromStr.js
@@ -2,5 +2,5 @@
 "arrow_array":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" href=\"arrow_array/timezone/private/struct.Tz.html\" title=\"struct arrow_array::timezone::private::Tz\">Tz</a>"]],
 "arrow_buffer":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" href=\"arrow_buffer/bigint/struct.i256.html\" title=\"struct arrow_buffer::bigint::i256\">i256</a>"]],
 "arrow_cast":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"enum\" href=\"arrow_cast/parse/enum.IntervalUnit.html\" title=\"enum arrow_cast::parse::IntervalUnit\">IntervalUnit</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" [...]
-"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"enum\" href=\"parquet/basic/enum.Compression.html\" title=\"enum parquet::basic::Compression\">Compression</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"enum\" href=\"parque [...]
+"parquet":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"enum\" href=\"parquet/basic/enum.Repetition.html\" title=\"enum parquet::basic::Repetition\">Repetition</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"enum\" href=\"parquet/f [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/type.impl/parquet/file/statistics/struct.ValueStatistics.js b/type.impl/parquet/file/statistics/struct.ValueStatistics.js
index 91601d1097..431d1fb42e 100644
--- a/type.impl/parquet/file/statistics/struct.ValueStatistics.js
+++ b/type.impl/parquet/file/statistics/struct.ValueStatistics.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-ValueStatistics%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/parquet/file/statistics.rs.html#469-600\">source</a><a href=\"#impl-ValueStatistics%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;T: <a class=\"trait\" href=\"parquet/data_type/private/trait.ParquetValueType.html\" title=\"trait parquet::data_type::private::ParquetValueType\">ParquetValueType</a>&gt; < [...]
+"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-ValueStatistics%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/parquet/file/statistics.rs.html#469-600\">source</a><a href=\"#impl-ValueStatistics%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;T: <a class=\"trait\" href=\"parquet/data_type/private/trait.ParquetValueType.html\" title=\"trait parquet::data_type::private::ParquetValueType\">ParquetValueType</a>&gt; < [...]
 };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})()
\ No newline at end of file
diff --git a/type.impl/parquet/format/struct.KeyValue.js b/type.impl/parquet/format/struct.KeyValue.js
index 9bda563527..559c30f593 100644
--- a/type.impl/parquet/format/struct.KeyValue.js
+++ b/type.impl/parquet/format/struct.KeyValue.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-KeyValue\" class=\"impl\"><a class=\"src rightside\" href=\"src/parquet/format.rs.html#3145-3152\">source</a><a href=\"#impl-KeyValue\" class=\"anchor\">§</a><h3 class=\"code-header\">impl <a class=\"struct\" href=\"parquet/format/struct.KeyValue.html\" title=\"struct parquet::format::KeyValue\">KeyValue</a></h3></section></summary><div class=\"impl-items\"><section id=\"method.new\" class=\"metho [...]
+"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-KeyValue\" class=\"impl\"><a class=\"src rightside\" href=\"src/parquet/format.rs.html#3145-3152\">source</a><a href=\"#impl-KeyValue\" class=\"anchor\">§</a><h3 class=\"code-header\">impl <a class=\"struct\" href=\"parquet/format/struct.KeyValue.html\" title=\"struct parquet::format::KeyValue\">KeyValue</a></h3></section></summary><div class=\"impl-items\"><section id=\"method.new\" class=\"metho [...]
 };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})()
\ No newline at end of file