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/12/15 18:28:13 UTC

(arrow-rs) branch asf-site updated: deploy: 9a1e8b572d11078e813fffe3d5c7106b6953d58c

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 5f99bf1f3f deploy: 9a1e8b572d11078e813fffe3d5c7106b6953d58c
5f99bf1f3f is described below

commit 5f99bf1f3f76551b9c8ed1844257639191b3b028
Author: tustvold <tu...@users.noreply.github.com>
AuthorDate: Fri Dec 15 18:28:07 2023 +0000

    deploy: 9a1e8b572d11078e813fffe3d5c7106b6953d58c
---
 .../array/boolean_array/struct.BooleanArray.html   |   4 +-
 .../array/byte_array/struct.GenericByteArray.html  |   4 +-
 .../dictionary_array/struct.DictionaryArray.html   |   6 +-
 .../struct.TypedDictionaryArray.html               |   2 +-
 .../struct.FixedSizeBinaryArray.html               |   4 +-
 .../struct.FixedSizeListArray.html                 |   4 +-
 arrow_array/array/fn.get_offsets.html              |   2 +-
 arrow_array/array/fn.make_array.html               |   2 +-
 arrow_array/array/index.html                       |   2 +-
 .../array/list_array/struct.GenericListArray.html  |   6 +-
 arrow_array/array/map_array/struct.MapArray.html   |   6 +-
 arrow_array/array/null_array/struct.NullArray.html |   4 +-
 .../primitive_array/struct.PrimitiveArray.html     |   6 +-
 arrow_array/array/run_array/struct.RunArray.html   |   4 +-
 .../array/run_array/struct.TypedRunArray.html      |   2 +-
 arrow_array/array/struct.BooleanArray.html         |   4 +-
 arrow_array/array/struct.DictionaryArray.html      |   6 +-
 arrow_array/array/struct.FixedSizeBinaryArray.html |   4 +-
 arrow_array/array/struct.FixedSizeListArray.html   |   4 +-
 arrow_array/array/struct.GenericByteArray.html     |   4 +-
 arrow_array/array/struct.GenericListArray.html     |   6 +-
 arrow_array/array/struct.MapArray.html             |   6 +-
 arrow_array/array/struct.NullArray.html            |   4 +-
 arrow_array/array/struct.PrimitiveArray.html       |   6 +-
 arrow_array/array/struct.RunArray.html             |   4 +-
 arrow_array/array/struct.StructArray.html          |   4 +-
 arrow_array/array/struct.TypedDictionaryArray.html |   2 +-
 arrow_array/array/struct.TypedRunArray.html        |   2 +-
 arrow_array/array/struct.UnionArray.html           |   4 +-
 .../array/struct_array/struct.StructArray.html     |   4 +-
 arrow_array/array/trait.Array.html                 |  10 +-
 arrow_array/array/type.ArrayRef.html               |   2 +-
 .../array/union_array/struct.UnionArray.html       |   4 +-
 arrow_array/cast/fn.downcast_array.html            |   2 +-
 help.html                                          |   2 +-
 index.html                                         |   2 +-
 parquet/all.html                                   |   2 +-
 .../selection/struct.RowSelection.html             |   2 +-
 .../arrow/arrow_reader/struct.RowSelection.html    |   2 +-
 .../dictionary_buffer/enum.DictionaryBuffer.html   |  13 +-
 parquet/arrow/buffer/dictionary_buffer/index.html  |   2 +-
 parquet/arrow/buffer/offset_buffer/index.html      |   2 +-
 .../buffer/offset_buffer/struct.OffsetBuffer.html  |  17 +-
 parquet/arrow/record_reader/buffer/index.html      |   2 +-
 .../arrow/record_reader/buffer/sidebar-items.js    |   2 +-
 .../record_reader/buffer/trait.BufferQueue.html    |  27 ---
 .../record_reader/buffer/trait.ValuesBuffer.html   |  10 +-
 .../definition_levels/enum.BufferInner.html        |   2 +-
 .../definition_levels/enum.MaybePacked.html        |   2 +-
 .../record_reader/definition_levels/index.html     |   2 +-
 .../struct.DefinitionLevelBuffer.html              |   8 +-
 .../struct.DefinitionLevelBufferDecoder.html       |  14 +-
 .../definition_levels/struct.PackedDecoder.html    |   8 +-
 .../arrow/record_reader/fn.packed_null_mask.html   |   2 +-
 parquet/arrow/record_reader/index.html             |   2 +-
 .../record_reader/struct.GenericRecordReader.html  |  32 ++-
 parquet/basic/enum.ConvertedType.html              |   2 +-
 parquet/basic/enum.LogicalType.html                |   2 +-
 parquet/basic/enum.PageType.html                   |   2 +-
 parquet/basic/enum.Repetition.html                 |   2 +-
 parquet/basic/enum.SortOrder.html                  |   2 +-
 .../constant.REPETITION_LEVELS_BATCH_SIZE.html     |   2 +-
 .../reader/decoder/constant.SKIP_BUFFER_SIZE.html  |   2 +-
 .../column/reader/decoder/enum.LevelDecoder.html   |   4 +-
 parquet/column/reader/decoder/index.html           |   2 +-
 parquet/column/reader/decoder/sidebar-items.js     |   2 +-
 .../decoder/struct.ColumnValueDecoderImpl.html     |   8 +-
 .../decoder/struct.DefinitionLevelDecoderImpl.html |  15 +-
 .../decoder/struct.RepetitionLevelDecoderImpl.html |  18 +-
 .../reader/decoder/trait.ColumnLevelDecoder.html   |  10 +-
 .../reader/decoder/trait.ColumnValueDecoder.html   |  24 +-
 .../decoder/trait.DefinitionLevelDecoder.html      |  31 +--
 .../reader/decoder/trait.LevelsBufferSlice.html    |   8 -
 .../decoder/trait.RepetitionLevelDecoder.html      |  26 +-
 .../reader/decoder/trait.ValuesBufferSlice.html    |   6 -
 parquet/column/reader/fn.parse_v1_level.html       |   2 +-
 parquet/column/reader/index.html                   |   2 +-
 .../column/reader/struct.GenericColumnReader.html  |  24 +-
 parquet/column/writer/index.html                   |   2 +-
 parquet/data_type/struct.ByteArray.html            |  18 +-
 parquet/data_type/struct.FixedLenByteArray.html    |   8 +-
 parquet/data_type/struct.Int96.html                |   2 +-
 parquet/errors/enum.ParquetError.html              |   2 +-
 .../struct.SerializedFileReader.html               |   2 +-
 parquet/file/statistics/enum.Statistics.html       |   2 +-
 parquet/file/writer/index.html                     |   2 +-
 parquet/format/enum.LogicalType.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/record/triplet/index.html                  |   2 +-
 .../record/triplet/struct.TypedTripletIter.html    |   4 +-
 parquet/schema/types/struct.ColumnPath.html        |   2 +-
 parquet_derive/parquet_field/enum.Type.html        |  22 +-
 parquet_derive/parquet_field/index.html            |   2 +-
 parquet_derive/parquet_field/struct.Field.html     |   6 +-
 search-index.js                                    |   4 +-
 settings.html                                      |   2 +-
 src/parquet/arrow/array_reader/byte_array.rs.html  |  34 +--
 .../array_reader/byte_array_dictionary.rs.html     |  48 ++--
 .../array_reader/fixed_len_byte_array.rs.html      | 110 +++------
 src/parquet/arrow/array_reader/mod.rs.html         |   4 +-
 src/parquet/arrow/array_reader/null_array.rs.html  |  10 +-
 .../arrow/array_reader/primitive_array.rs.html     |   8 +-
 src/parquet/arrow/buffer/dictionary_buffer.rs.html |  78 +-----
 src/parquet/arrow/buffer/offset_buffer.rs.html     |  52 +---
 src/parquet/arrow/record_reader/buffer.rs.html     | 130 +---------
 .../arrow/record_reader/definition_levels.rs.html  |  74 ++----
 src/parquet/arrow/record_reader/mod.rs.html        | 112 ++-------
 src/parquet/column/reader.rs.html                  | 268 +++------------------
 src/parquet/column/reader/decoder.rs.html          | 158 +++++-------
 src/parquet/column/writer/mod.rs.html              |  58 ++---
 src/parquet/file/serialized_reader.rs.html         |   6 +-
 src/parquet/file/writer.rs.html                    |   6 +-
 src/parquet/record/triplet.rs.html                 |  20 +-
 src/parquet_derive/parquet_field.rs.html           |  76 +-----
 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              |   4 +-
 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 +-
 .../record_reader/buffer/trait.BufferQueue.js      |   3 -
 .../reader/decoder/trait.LevelsBufferSlice.js      |   3 -
 .../reader/decoder/trait.ValuesBufferSlice.js      |   3 -
 type.impl/alloc/vec/struct.Vec.js                  |   2 +-
 .../array/byte_array/struct.GenericByteArray.js    |   2 +-
 .../dictionary_array/struct.DictionaryArray.js     |   2 +-
 .../array/list_array/struct.GenericListArray.js    |   2 +-
 .../array/primitive_array/struct.PrimitiveArray.js |   2 +-
 .../arrow_array/array/run_array/struct.RunArray.js |   2 +-
 .../record_reader/struct.GenericRecordReader.js    |   2 +-
 .../column/reader/struct.GenericColumnReader.js    |   2 +-
 .../file/statistics/struct.ValueStatistics.js      |   2 +-
 type.impl/parquet/format/struct.KeyValue.js        |   2 +-
 153 files changed, 577 insertions(+), 1341 deletions(-)

diff --git a/arrow_array/array/boolean_array/struct.BooleanArray.html b/arrow_array/array/boolean_array/struct.BooleanArray.html
index c24aafa9e1..0be3c25380 100644
--- a/arrow_array/array/boolean_array/struct.BooleanArray.html
+++ b/arrow_array/array/boolean_array/struct.BooleanArray.html
@@ -72,13 +72,13 @@ each element of the provided arrays</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.into_parts" class="method"><a class="src rightside" href="../../../src/arrow_array/array/boolean_array.rs.html#259-261">source</a><h4 class="code-header">pub fn <a href="#method.into_parts" class="fn">into_parts</a>(self) -&gt; (BooleanBuffer, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;NullBuffer&gt;)</h4></sect [...]
 </div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BooleanArray-1" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/boolean_array.rs.html#396-401">source</a><a href="#impl-BooleanArray-1" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="struct" href="struct.BooleanArray.html" title="struct arrow_array::array::boolean_array::BooleanArray">BooleanArray</a></h3></section></summary><div cla [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-BooleanArray" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/boolean_array.rs.html#264-312">source</a><a href="#impl-Array-for-BooleanArray" class="anchor">§</a><h3 class [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/boolean_array.rs.html#269-271">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayD [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/boolean_array.rs.html#269-271">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a cla [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/boolean_array.rs.html#297-299">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href=" [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/boolean_array.rs.html#309-311">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" cla [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BooleanArray" class="impl"><a href="#impl-RefUnwindSafe-for-BooleanArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-la [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/arrow_array/array/byte_array/struct.GenericByteArray.html b/arrow_array/array/byte_array/struct.GenericByteArray.html
index 82cc17dcc6..e22615cc32 100644
--- a/arrow_array/array/byte_array/struct.GenericByteArray.html
+++ b/arrow_array/array/byte_array/struct.GenericByteArray.html
@@ -118,13 +118,13 @@ please use the function <a href="#method.value_length"><code>value_length</code>
 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, ArrowError&gt;</h4></section></summary><div class="docblock"><p>Fallibly creates a <a href="../string_array/type.GenericStringArray.html" title="type arrow_array::array::string_array::GenericStringArray"><code>GenericStringArray</code></a> from a <a href="../binary_array/type.GenericBinaryArray.html" title="type arrow_array::array::binary_arr [...]
 an error if <a href="../binary_array/type.GenericBinaryArray.html" title="type arrow_array::array::binary_array::GenericBinaryArray"><code>GenericBinaryArray</code></a> contains invalid UTF-8 data</p>
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-GenericByteArray%3CT%3E" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/byte_array.rs.html#427-476">source</a><a href="#impl-Array-for-GenericByteArray%3CT%3E" class="anc [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/byte_array.rs.html#432-434">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/byte_array.rs.html#432-434">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class= [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/byte_array.rs.html#460-462">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="htt [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/byte_array.rs.html#473-475">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" class= [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
     Ptr: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;T::<a class="associatedtype" href="../../types/trait.ByteArrayType.html#associatedtype.Native" title="type arrow_array::types::ByteArrayType::Native">Native</a>&gt; + 'a,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_iter" class="method trait-impl"><a class="src [...]
     Ptr: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;T::<a class="associatedtype" href="../../types/trait.ByteArrayType.html#associatedtype.Native" title="type arrow_array::types::ByteArrayType::Native">Native</a>&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_iter-1" class="method trait-impl"><a class="src ri [...]
     &lt;T as <a class="trait" href="../../types/trait.ByteArrayType.html" title="trait arrow_array::types::ByteArrayType">ByteArrayType</a>&gt;::<a class="associatedtype" href="../../types/trait.ByteArrayType.html#associatedtype.Offset" title="type arrow_array::types::ByteArrayType::Offset">Offset</a>: <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>,</div></h3 [...]
diff --git a/arrow_array/array/dictionary_array/struct.DictionaryArray.html b/arrow_array/array/dictionary_array/struct.DictionaryArray.html
index 3e2b258775..0c6687f105 100644
--- a/arrow_array/array/dictionary_array/struct.DictionaryArray.html
+++ b/arrow_array/array/dictionary_array/struct.DictionaryArray.html
@@ -162,14 +162,14 @@ or this function may panic.</p>
 <p>For each value in <a href="struct.DictionaryArray.html#method.values" title="method arrow_array::array::dictionary_array::DictionaryArray::values"><code>Self::values</code></a> the corresponding bit will be set in the
 returned mask if it is referenced by a key in this <a href="struct.DictionaryArray.html" title="struct arrow_array::array::dictionary_array::DictionaryArray"><code>DictionaryArray</code></a></p>
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AnyDictionaryArray-for-DictionaryArray%3CK%3E" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#986-1005">source</a><a href="#impl-AnyDictionaryArray-for-Dic [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#691-693">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; Arr [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#691-693">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a  [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#719-721">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" hre [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#752-756">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size"  [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.is_null" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#220-222">source</a><a href="#method.is_null" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.is_null" class="fn">is_null</a>(&amp;self, index: <a class="primitive" hr [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
-</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_array/array/dictionary_array.rs.html#571-615">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>(data: ArrayData) -&gt; Self</h4></section></summary><div class='docblock'>C [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+</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_array/array/dictionary_array.rs.html#571-615">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>(data: <a class="struct" href="../../../arrow_data/data/struct.ArrayData.htm [...]
 <h4 id="example-1"><a href="#example-1">Example:</a></h4>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>arrow_array::{DictionaryArray, PrimitiveArray, StringArray, types::Int8Type};
 
diff --git a/arrow_array/array/dictionary_array/struct.TypedDictionaryArray.html b/arrow_array/array/dictionary_array/struct.TypedDictionaryArray.html
index 16ab7ecd67..a7f1d0ca90 100644
--- a/arrow_array/array/dictionary_array/struct.TypedDictionaryArray.html
+++ b/arrow_array/array/dictionary_array/struct.TypedDictionaryArray.html
@@ -20,7 +20,7 @@
 </div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-TypedDictionaryArray%3C'a,+K,+V%3E" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#808-818">source</a><a href="#impl-TypedDictionaryArray%3C'a,+K,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, K: [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.values" class="method"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#815-817">source</a><h4 class="code-header">pub fn <a href="#method.values" class="fn">values</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a></h4></section></summary><div class="docblock"><p>Returns the values of this [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-TypedDictionaryArray%3C'a,+K,+V%3E" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#820-872">source</a><a href="#impl-Array-for-TypedDictionaryArr [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#825-827">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; Arr [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#825-827">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a  [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#853-855">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" hre [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/dictionary_array.rs.html#869-871">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size"  [...]
diff --git a/arrow_array/array/fixed_size_binary_array/struct.FixedSizeBinaryArray.html b/arrow_array/array/fixed_size_binary_array/struct.FixedSizeBinaryArray.html
index 8856ade307..00d2956ccf 100644
--- a/arrow_array/array/fixed_size_binary_array/struct.FixedSizeBinaryArray.html
+++ b/arrow_array/array/fixed_size_binary_array/struct.FixedSizeBinaryArray.html
@@ -114,13 +114,13 @@ created.</p>
 <p>Returns error if argument has length zero, or sizes of nested slices don’t match.</p>
 </div></details><section id="method.value_offset_at" class="method"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_binary_array.rs.html#453-455">source</a><h4 class="code-header">fn <a href="#method.value_offset_at" class="fn">value_offset_at</a>(&amp;self, i: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></h4></se [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-FixedSizeBinaryArray" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_binary_array.rs.html#564-612">source</a><a href="#impl-Array-for-FixedSizeBinaryArray" cla [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_binary_array.rs.html#569-571">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -& [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_binary_array.rs.html#569-571">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -& [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_binary_array.rs.html#597-599">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="en [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_binary_array.rs.html#609-611">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
 </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_array/array/fixed_size_binary_array.rs.html#502-538">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>(v: <a class="struct" href="../fixed_size_list_array/struct.FixedSize [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FixedSizeBinaryArray" class="impl"><a href="#impl-RefUnwindSafe-for-FixedSizeBinaryArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="htt [...]
diff --git a/arrow_array/array/fixed_size_list_array/struct.FixedSizeListArray.html b/arrow_array/array/fixed_size_list_array/struct.FixedSizeListArray.html
index 47cef5fd8e..ded66c5f24 100644
--- a/arrow_array/array/fixed_size_list_array/struct.FixedSizeListArray.html
+++ b/arrow_array/array/fixed_size_list_array/struct.FixedSizeListArray.html
@@ -124,13 +124,13 @@ are shown on the left, and the actual <code>FixedSizeListArray</code> encoding o
 <span class="macro">println!</span>(<span class="string">"{:?}"</span>, list_array);</code></pre></div>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_list_array.rs.html#330-332">source</a><h4 class="code-header">pub fn <a href="#method.iter" class="fn">iter</a>(&amp;self) -&gt; <a class="type" href="../../iterator/type.FixedSizeListIter.html" title="type arrow_array::iterator::FixedSizeListIter">FixedSizeListIter</a>&lt;'_&gt;</h4></section></summary><div  [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-FixedSizeListArray" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_list_array.rs.html#368-420">source</a><a href="#impl-Array-for-FixedSizeListArray" class="an [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_list_array.rs.html#373-375">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_list_array.rs.html#373-375">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_list_array.rs.html#401-403">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_list_array.rs.html#413-419">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_s [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
 </div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/fixed_size_binary_array.rs.html#502-538">source</a><a href="#method.from-1" 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>(v: <a class="struct" href="struct.FixedSizeListArray.html" title [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FixedSizeListArray" class="impl"><a href="#impl-RefUnwindSafe-for-FixedSizeListArray" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https: [...]
diff --git a/arrow_array/array/fn.get_offsets.html b/arrow_array/array/fn.get_offsets.html
index c0dd3e511b..19a40f23a5 100644
--- a/arrow_array/array/fn.get_offsets.html
+++ b/arrow_array/array/fn.get_offsets.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="Helper function that gets offset from an `ArrayData`"><title>get_offsets in arrow_array::array - 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/woff [...]
+<!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="Helper function that gets offset from an `ArrayData`"><title>get_offsets in arrow_array::array - 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/woff [...]
 <h2 id="safety"><a href="#safety">Safety</a></h2>
 <ul>
 <li>ArrayData must contain a valid [<code>OffsetBuffer</code>] as its first buffer</li>
diff --git a/arrow_array/array/fn.make_array.html b/arrow_array/array/fn.make_array.html
index eba682e586..d13aae9e8c 100644
--- a/arrow_array/array/fn.make_array.html
+++ b/arrow_array/array/fn.make_array.html
@@ -1,3 +1,3 @@
-<!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="Constructs an array using the input `data`. Returns a reference-counted `Array` instance."><title>make_array in arrow_array::array - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel [...]
+<!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="Constructs an array using the input `data`. Returns a reference-counted `Array` instance."><title>make_array in arrow_array::array - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel [...]
 Returns a reference-counted <code>Array</code> instance.</p>
 </div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_array/array/index.html b/arrow_array/array/index.html
index 2960027744..025201e12d 100644
--- a/arrow_array/array/index.html
+++ b/arrow_array/array/index.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="The concrete array definitions"><title>arrow_array::array - 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="../../static.fil [...]
 </div></details><h2 id="reexports" class="section-header"><a href="#reexports">Re-exports</a></h2><ul class="item-table"><li><div class="item-name" id="reexport.ArrowPrimitiveType"><code>pub use crate::types::<a class="trait" href="../types/trait.ArrowPrimitiveType.html" title="trait arrow_array::types::ArrowPrimitiveType">ArrowPrimitiveType</a>;</code></div></li></ul><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2><ul class="item-table"><li><div class="item-na [...]
 (e.g. <code>[&quot;A&quot;, &quot;B&quot;]</code>).</div></li><li><div class="item-name"><a class="struct" href="struct.GenericByteArray.html" title="struct arrow_array::array::GenericByteArray">GenericByteArray</a></div><div class="desc docblock-short">An array of <a href="https://arrow.apache.org/docs/format/Columnar.html#variable-size-binary-layout">variable length byte arrays</a></div></li><li><div class="item-name"><a class="struct" href="struct.GenericListArray.html" title="struct  [...]
-(e.g. <code>[&quot;A&quot;, &quot;B&quot;, &quot;C&quot;]</code>).</div></li><li><div class="item-name"><a class="struct" href="struct.MapArray.html" title="struct arrow_array::array::MapArray">MapArray</a></div><div class="desc docblock-short">An array of key-value maps</div></li><li><div class="item-name"><a class="struct" href="struct.NativeAdapter.html" title="struct arrow_array::array::NativeAdapter">NativeAdapter</a></div><div class="desc docblock-short">An optional primitive value [...]
+(e.g. <code>[&quot;A&quot;, &quot;B&quot;, &quot;C&quot;]</code>).</div></li><li><div class="item-name"><a class="struct" href="struct.MapArray.html" title="struct arrow_array::array::MapArray">MapArray</a></div><div class="desc docblock-short">An array of key-value maps</div></li><li><div class="item-name"><a class="struct" href="struct.NativeAdapter.html" title="struct arrow_array::array::NativeAdapter">NativeAdapter</a></div><div class="desc docblock-short">An optional primitive value [...]
 Returns a reference-counted <code>Array</code> instance.</div></li><li><div class="item-name"><a class="fn" href="fn.new_empty_array.html" title="fn arrow_array::array::new_empty_array">new_empty_array</a></div><div class="desc docblock-short">Creates a new empty array</div></li><li><div class="item-name"><a class="fn" href="fn.new_null_array.html" title="fn arrow_array::array::new_null_array">new_null_array</a></div><div class="desc docblock-short">Creates a new array of <code>data_type [...]
 entirely of <code>NULL</code> values</div></li><li><div class="item-name"><a class="fn" href="fn.print_long_array.html" title="fn arrow_array::array::print_long_array">print_long_array</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="desc docblock-short">Helper function for printing potentially long arrays.</div></li></ul><h2 id="types" class="section-header"><a href="#types">Type Aliases</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" hre [...]
\ No newline at end of file
diff --git a/arrow_array/array/list_array/struct.GenericListArray.html b/arrow_array/array/list_array/struct.GenericListArray.html
index 462eda9d9e..c1905499fa 100644
--- a/arrow_array/array/list_array/struct.GenericListArray.html
+++ b/arrow_array/array/list_array/struct.GenericListArray.html
@@ -114,14 +114,14 @@ allowing for zero-copy cloning</p>
 ];
 <span class="kw">let </span>list_array = ListArray::from_iter_primitive::&lt;Int32Type, <span class="kw">_</span>, <span class="kw">_</span>&gt;(data);
 <span class="macro">println!</span>(<span class="string">"{:?}"</span>, list_array);</code></pre></div>
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-GenericListArray%3COffsetSize%3E-1" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/list_array.rs.html#411-457">source</a><a href="#impl-GenericListArray%3COffsetSize%3E-1" class="anchor">§</a><h3 class="code-header">impl&lt;OffsetSize: <a class="trait" href="trait.OffsetSizeTrait.html" title="trait arrow_array::array::list_array::OffsetSizeTrait">OffsetS [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/list_array.rs.html#464-466">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-GenericListArray%3COffsetSize%3E-1" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/list_array.rs.html#411-457">source</a><a href="#impl-GenericListArray%3COffsetSize%3E-1" class="anchor">§</a><h3 class="code-header">impl&lt;OffsetSize: <a class="trait" href="trait.OffsetSizeTrait.html" title="trait arrow_array::array::list_array::OffsetSizeTrait">OffsetS [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/list_array.rs.html#464-466">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class= [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/list_array.rs.html#492-494">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="htt [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/list_array.rs.html#505-512">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" class= [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-GenericListArray%3COffsetSize%3E" class="impl"><a href="#impl-RefUnwindSafe-for-GenericListArray%3COffsetSize%3E" class="anchor">§</a><h3 class="code-header">impl&lt [...]
     OffsetSize: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-GenericListArray%3COffsetSize%3E" class="impl"><a href="#impl-UnwindSafe-for-GenericListArray%3COffsetSize%3E" class="anchor">§</a><h3 class="code-header">impl&lt;OffsetSize&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="tr [...]
diff --git a/arrow_array/array/map_array/struct.MapArray.html b/arrow_array/array/map_array/struct.MapArray.html
index d4ef4d091c..bf50803432 100644
--- a/arrow_array/array/map_array/struct.MapArray.html
+++ b/arrow_array/array/map_array/struct.MapArray.html
@@ -60,19 +60,19 @@ allowing for zero-copy cloning</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.value_length" class="method"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#214-217">source</a><h4 class="code-header">pub fn <a href="#method.value_length" class="fn">value_length</a>(&amp;self, i: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/pri [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#220-227">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, length: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.h [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#230-232">source</a><h4 class="code-header">pub fn <a href="#method.iter" class="fn">iter</a>(&amp;self) -&gt; <a class="type" href="../../iterator/type.MapArrayIter.html" title="type arrow_array::iterator::MapArrayIter">MapArrayIter</a>&lt;'_&gt;</h4></section></summary><div class="docblock"><p>constru [...]
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-MapArray-1" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#255-344">source</a><a href="#impl-MapArray-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.MapArray.html" title="struct arrow_array::array::map_array::MapArray">MapArray</a></h3></section></summary><div class="impl-items"><section id="method.tr [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-MapArray-1" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#255-344">source</a><a href="#impl-MapArray-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.MapArray.html" title="struct arrow_array::array::map_array::MapArray">MapArray</a></h3></section></summary><div class="impl-items"><section id="method.tr [...]
     keys: 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 = &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;,
     values: &amp;dyn <a class="trait" href="../trait.Array.html" title="trait arrow_array::array::Array">Array</a>,
     entry_offsets: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>]
 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, ArrowError&gt;</h4></section></summary><div class="docblock"><p>Creates map array from provided keys, values and entry_offsets.</p>
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-MapArray" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#346-400">source</a><a href="#impl-Array-for-MapArray" class="anchor">§</a><h3 class="code-heade [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#351-353">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData< [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#351-353">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class=" [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#379-381">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="http [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/map_array.rs.html#392-399">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" class=" [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-MapArray" class="impl"><a href="#impl-RefUnwindSafe-for-MapArray" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/ [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/arrow_array/array/null_array/struct.NullArray.html b/arrow_array/array/null_array/struct.NullArray.html
index c15fe0aba8..cee91ff2bd 100644
--- a/arrow_array/array/null_array/struct.NullArray.html
+++ b/arrow_array/array/null_array/struct.NullArray.html
@@ -17,13 +17,13 @@ other [<code>DataType</code>].</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../../src/arrow_array/array/null_array.rs.html#60-67">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, offset: <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" [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.builder" class="method"><a class="src rightside" href="../../../src/arrow_array/array/null_array.rs.html#70-72">source</a><h4 class="code-header">pub fn <a href="#method.builder" class="fn">builder</a>(capacity: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="../../builder/null_builder/struct.NullBuilder.html" title="struc [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-NullArray" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/null_array.rs.html#75-127">source</a><a href="#impl-Array-for-NullArray" class="anchor">§</a><h3 class="code-hea [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/null_array.rs.html#80-82">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</ [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/null_array.rs.html#80-82">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="s [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/null_array.rs.html#108-110">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="htt [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/null_array.rs.html#124-126">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" class= [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.is_null" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#220-222">source</a><a href="#method.is_null" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.is_null" class="fn">is_null</a>(&amp;self, index: <a class="primitive" hr [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-NullArray" class="impl"><a href="#impl-RefUnwindSafe-for-NullArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/arrow_array/array/primitive_array/struct.PrimitiveArray.html b/arrow_array/array/primitive_array/struct.PrimitiveArray.html
index 38be66a215..3a593d8124 100644
--- a/arrow_array/array/primitive_array/struct.PrimitiveArray.html
+++ b/arrow_array/array/primitive_array/struct.PrimitiveArray.html
@@ -213,14 +213,14 @@ will be casted to Null</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.precision" class="method"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#1434-1458">source</a><h4 class="code-header">pub fn <a href="#method.precision" class="fn">precision</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a></h4></section></summary><div class="docblock"><p>Returns the decimal precision  [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.scale" class="method"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#1461-1485">source</a><h4 class="code-header">pub fn <a href="#method.scale" class="fn">scale</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a></h4></section></summary><div class="docblock"><p>Returns the decimal scale of this array</p>
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-PrimitiveArray%3CT%3E" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#988-1036">source</a><a href="#impl-Array-for-PrimitiveArray%3CT%3E" class="a [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#993-995">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; Arra [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#993-995">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a c [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#1021-1023">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" hr [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#1033-1035">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
-</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-12" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#1377-1391">source</a><a href="#method.from-12" 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>(data: ArrayData) -&gt; Self</h4></section></summary><div class='docb [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-12" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#1377-1391">source</a><a href="#method.from-12" 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>(data: <a class="struct" href="../../../arrow_data/data/struct.ArrayD [...]
     data: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;&lt;<a class="struct" href="../../types/struct.DurationMicrosecondType.html" title="struct arrow_array::types::DurationMicrosecondType">DurationMicrosecondType</a> as <a class="trait" href="../../types/trait.ArrowPrimitiveType.html" title="trait arrow_array::types::ArrowPrimitiveType">ArrowPrimitiveType</a>&gt;::<a class="associatedtype" href="../../typ [...]
 ) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CVec%3C%3CDurationMillisecondType+as+ArrowPrimitiveType%3E::Native%3E%3E-for-PrimitiveArray%3CDurationMillisecondType%3E" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/primitive_array.rs.html#1321">source</a><a href="#impl-From%3CVec%3C%3CDurationM [...]
     data: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;&lt;<a class="struct" href="../../types/struct.DurationMillisecondType.html" title="struct arrow_array::types::DurationMillisecondType">DurationMillisecondType</a> as <a class="trait" href="../../types/trait.ArrowPrimitiveType.html" title="trait arrow_array::types::ArrowPrimitiveType">ArrowPrimitiveType</a>&gt;::<a class="associatedtype" href="../../typ [...]
diff --git a/arrow_array/array/run_array/struct.RunArray.html b/arrow_array/array/run_array/struct.RunArray.html
index 70b6eea820..9cc877e2b3 100644
--- a/arrow_array/array/run_array/struct.RunArray.html
+++ b/arrow_array/array/run_array/struct.RunArray.html
@@ -67,13 +67,13 @@ scaled well for larger inputs.
 See <a href="https://github.com/apache/arrow-rs/pull/3622#issuecomment-1407753727">https://github.com/apache/arrow-rs/pull/3622#issuecomment-1407753727</a> for more details.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#248-254">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, length: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.h [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-RunArray%3CT%3E" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#305-388">source</a><a href="#impl-Array-for-RunArray%3CT%3E" class="anchor">§</a><h3 cla [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#310-312">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData< [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#310-312">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class=" [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#338-340">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="http [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#383-387">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" class=" [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.is_null" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#220-222">source</a><a href="#method.is_null" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.is_null" class="fn">is_null</a>(&amp;self, index: <a class="primitive" hr [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
 <h4 id="example-1"><a href="#example-1">Example:</a></h4>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>arrow_array::{RunArray, PrimitiveArray, StringArray, types::Int16Type};
 
diff --git a/arrow_array/array/run_array/struct.TypedRunArray.html b/arrow_array/array/run_array/struct.TypedRunArray.html
index 6fb76e0c80..96c3cbc773 100644
--- a/arrow_array/array/run_array/struct.TypedRunArray.html
+++ b/arrow_array/array/run_array/struct.TypedRunArray.html
@@ -21,7 +21,7 @@
 </div></details><details class="toggle method-toggle" open><summary><section id="method.values" class="method"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#549-551">source</a><h4 class="code-header">pub fn <a href="#method.values" class="fn">values</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a></h4></section></summary><div class="docblock"><p>Returns the values of this <a hre [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.run_array" class="method"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#554-556">source</a><h4 class="code-header">pub fn <a href="#method.run_array" class="fn">run_array</a>(&amp;self) -&gt; &amp;'a <a class="struct" href="struct.RunArray.html" title="struct arrow_array::array::run_array::RunArray">RunArray</a>&lt;R&gt;</h4></section></summary><div class="docblock">< [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-TypedRunArray%3C'a,+R,+V%3E" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#559-611">source</a><a href="#impl-Array-for-TypedRunArray%3C'a,+R,+V%3E" cla [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#564-566">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData< [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#564-566">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class=" [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#592-594">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="http [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/run_array.rs.html#608-610">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" class=" [...]
diff --git a/arrow_array/array/struct.BooleanArray.html b/arrow_array/array/struct.BooleanArray.html
index 665b1d4320..129474460b 100644
--- a/arrow_array/array/struct.BooleanArray.html
+++ b/arrow_array/array/struct.BooleanArray.html
@@ -72,13 +72,13 @@ each element of the provided arrays</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.into_parts" class="method"><a class="src rightside" href="../../src/arrow_array/array/boolean_array.rs.html#259-261">source</a><h4 class="code-header">pub fn <a href="#method.into_parts" class="fn">into_parts</a>(self) -&gt; (BooleanBuffer, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;NullBuffer&gt;)</h4></section [...]
 </div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-BooleanArray-1" class="impl"><a class="src rightside" href="../../src/arrow_array/array/boolean_array.rs.html#396-401">source</a><a href="#impl-BooleanArray-1" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="struct" href="boolean_array/struct.BooleanArray.html" title="struct arrow_array::array::boolean_array::BooleanArray">BooleanArray</a></h3></section></summa [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-BooleanArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/boolean_array.rs.html#264-312">source</a><a href="#impl-Array-for-BooleanArray" class="anchor">§</a><h3 class="c [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/boolean_array.rs.html#269-271">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4>< [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/boolean_array.rs.html#269-271">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struc [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/boolean_array.rs.html#297-299">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://d [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/boolean_array.rs.html#309-311">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class="fn [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-BooleanArray" class="impl"><a href="#impl-RefUnwindSafe-for-BooleanArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-la [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/arrow_array/array/struct.DictionaryArray.html b/arrow_array/array/struct.DictionaryArray.html
index 734fb51707..0ee17b0957 100644
--- a/arrow_array/array/struct.DictionaryArray.html
+++ b/arrow_array/array/struct.DictionaryArray.html
@@ -162,14 +162,14 @@ or this function may panic.</p>
 <p>For each value in <a href="dictionary_array/struct.DictionaryArray.html#method.values" title="method arrow_array::array::dictionary_array::DictionaryArray::values"><code>Self::values</code></a> the corresponding bit will be set in the
 returned mask if it is referenced by a key in this <a href="dictionary_array/struct.DictionaryArray.html" title="struct arrow_array::array::dictionary_array::DictionaryArray"><code>DictionaryArray</code></a></p>
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AnyDictionaryArray-for-DictionaryArray%3CK%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#986-1005">source</a><a href="#impl-AnyDictionaryArray-for-Dictio [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#691-693">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#691-693">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="st [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#719-721">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https: [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#752-756">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class= [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.is_null" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#220-222">source</a><a href="#method.is_null" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.is_null" class="fn">is_null</a>(&amp;self, index: <a class="primitive" href="ht [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
-</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_array/array/dictionary_array.rs.html#571-615">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>(data: ArrayData) -&gt; Self</h4></section></summary><div class='docblock'>Conv [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+</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_array/array/dictionary_array.rs.html#571-615">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>(data: <a class="struct" href="../../arrow_data/data/struct.ArrayData.html" tit [...]
 <h4 id="example-1"><a href="#example-1">Example:</a></h4>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>arrow_array::{DictionaryArray, PrimitiveArray, StringArray, types::Int8Type};
 
diff --git a/arrow_array/array/struct.FixedSizeBinaryArray.html b/arrow_array/array/struct.FixedSizeBinaryArray.html
index fa4ea29b18..f25bf022af 100644
--- a/arrow_array/array/struct.FixedSizeBinaryArray.html
+++ b/arrow_array/array/struct.FixedSizeBinaryArray.html
@@ -114,13 +114,13 @@ created.</p>
 <p>Returns error if argument has length zero, or sizes of nested slices don’t match.</p>
 </div></details><section id="method.value_offset_at" class="method"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_binary_array.rs.html#453-455">source</a><h4 class="code-header">fn <a href="#method.value_offset_at" class="fn">value_offset_at</a>(&amp;self, i: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a></h4></secti [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-FixedSizeBinaryArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_binary_array.rs.html#564-612">source</a><a href="#impl-Array-for-FixedSizeBinaryArray" class= [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_binary_array.rs.html#569-571">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; Array [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_binary_array.rs.html#569-571">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a cl [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_binary_array.rs.html#597-599">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href= [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_binary_array.rs.html#609-611">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
 </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_array/array/fixed_size_binary_array.rs.html#502-538">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>(v: <a class="struct" href="fixed_size_list_array/struct.FixedSizeListAr [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FixedSizeBinaryArray" class="impl"><a href="#impl-RefUnwindSafe-for-FixedSizeBinaryArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="htt [...]
diff --git a/arrow_array/array/struct.FixedSizeListArray.html b/arrow_array/array/struct.FixedSizeListArray.html
index bfe24808c1..22fb87a3f0 100644
--- a/arrow_array/array/struct.FixedSizeListArray.html
+++ b/arrow_array/array/struct.FixedSizeListArray.html
@@ -124,13 +124,13 @@ are shown on the left, and the actual <code>FixedSizeListArray</code> encoding o
 <span class="macro">println!</span>(<span class="string">"{:?}"</span>, list_array);</code></pre></div>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#330-332">source</a><h4 class="code-header">pub fn <a href="#method.iter" class="fn">iter</a>(&amp;self) -&gt; <a class="type" href="../iterator/type.FixedSizeListIter.html" title="type arrow_array::iterator::FixedSizeListIter">FixedSizeListIter</a>&lt;'_&gt;</h4></section></summary><div class= [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-FixedSizeListArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#368-420">source</a><a href="#impl-Array-for-FixedSizeListArray" class="ancho [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#373-375">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayDa [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#373-375">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a clas [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#401-403">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="h [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#413-419">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" c [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
 </div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_binary_array.rs.html#502-538">source</a><a href="#method.from-1" 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>(v: <a class="struct" href="fixed_size_list_array/struct.FixedSizeLi [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FixedSizeListArray" class="impl"><a href="#impl-RefUnwindSafe-for-FixedSizeListArray" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https: [...]
diff --git a/arrow_array/array/struct.GenericByteArray.html b/arrow_array/array/struct.GenericByteArray.html
index c06fd3cdf6..3bd2f9f8f0 100644
--- a/arrow_array/array/struct.GenericByteArray.html
+++ b/arrow_array/array/struct.GenericByteArray.html
@@ -118,13 +118,13 @@ please use the function <a href="#method.value_length"><code>value_length</code>
 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, ArrowError&gt;</h4></section></summary><div class="docblock"><p>Fallibly creates a <a href="string_array/type.GenericStringArray.html" title="type arrow_array::array::string_array::GenericStringArray"><code>GenericStringArray</code></a> from a <a href="binary_array/type.GenericBinaryArray.html" title="type arrow_array::array::binary_array::Ge [...]
 an error if <a href="binary_array/type.GenericBinaryArray.html" title="type arrow_array::array::binary_array::GenericBinaryArray"><code>GenericBinaryArray</code></a> contains invalid UTF-8 data</p>
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-GenericByteArray%3CT%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/byte_array.rs.html#427-476">source</a><a href="#impl-Array-for-GenericByteArray%3CT%3E" class="anchor [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/byte_array.rs.html#432-434">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></se [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/byte_array.rs.html#432-434">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct"  [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/byte_array.rs.html#460-462">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://doc. [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/byte_array.rs.html#473-475">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class="fn">g [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
     Ptr: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;T::<a class="associatedtype" href="../types/trait.ByteArrayType.html#associatedtype.Native" title="type arrow_array::types::ByteArrayType::Native">Native</a>&gt; + 'a,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_iter" class="method trait-impl"><a class="src ri [...]
     Ptr: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;T::<a class="associatedtype" href="../types/trait.ByteArrayType.html#associatedtype.Native" title="type arrow_array::types::ByteArrayType::Native">Native</a>&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from_iter-1" class="method trait-impl"><a class="src right [...]
     &lt;T as <a class="trait" href="../types/trait.ByteArrayType.html" title="trait arrow_array::types::ByteArrayType">ByteArrayType</a>&gt;::<a class="associatedtype" href="../types/trait.ByteArrayType.html#associatedtype.Offset" title="type arrow_array::types::ByteArrayType::Offset">Offset</a>: <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>,</div></h3></sec [...]
diff --git a/arrow_array/array/struct.GenericListArray.html b/arrow_array/array/struct.GenericListArray.html
index 1b2113cea7..b49b735cf7 100644
--- a/arrow_array/array/struct.GenericListArray.html
+++ b/arrow_array/array/struct.GenericListArray.html
@@ -114,14 +114,14 @@ allowing for zero-copy cloning</p>
 ];
 <span class="kw">let </span>list_array = ListArray::from_iter_primitive::&lt;Int32Type, <span class="kw">_</span>, <span class="kw">_</span>&gt;(data);
 <span class="macro">println!</span>(<span class="string">"{:?}"</span>, list_array);</code></pre></div>
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-GenericListArray%3COffsetSize%3E-1" class="impl"><a class="src rightside" href="../../src/arrow_array/array/list_array.rs.html#411-457">source</a><a href="#impl-GenericListArray%3COffsetSize%3E-1" class="anchor">§</a><h3 class="code-header">impl&lt;OffsetSize: <a class="trait" href="list_array/trait.OffsetSizeTrait.html" title="trait arrow_array::array::list_array::OffsetSizeTrait" [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/list_array.rs.html#464-466">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></se [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-GenericListArray%3COffsetSize%3E-1" class="impl"><a class="src rightside" href="../../src/arrow_array/array/list_array.rs.html#411-457">source</a><a href="#impl-GenericListArray%3COffsetSize%3E-1" class="anchor">§</a><h3 class="code-header">impl&lt;OffsetSize: <a class="trait" href="list_array/trait.OffsetSizeTrait.html" title="trait arrow_array::array::list_array::OffsetSizeTrait" [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/list_array.rs.html#464-466">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct"  [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/list_array.rs.html#492-494">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://doc. [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/list_array.rs.html#505-512">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class="fn">g [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-GenericListArray%3COffsetSize%3E" class="impl"><a href="#impl-RefUnwindSafe-for-GenericListArray%3COffsetSize%3E" class="anchor">§</a><h3 class="code-header">impl&lt [...]
     OffsetSize: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-GenericListArray%3COffsetSize%3E" class="impl"><a href="#impl-UnwindSafe-for-GenericListArray%3COffsetSize%3E" class="anchor">§</a><h3 class="code-header">impl&lt;OffsetSize&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="tr [...]
diff --git a/arrow_array/array/struct.MapArray.html b/arrow_array/array/struct.MapArray.html
index 355c12b5e7..ffacd63c2b 100644
--- a/arrow_array/array/struct.MapArray.html
+++ b/arrow_array/array/struct.MapArray.html
@@ -60,19 +60,19 @@ allowing for zero-copy cloning</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.value_length" class="method"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#214-217">source</a><h4 class="code-header">pub fn <a href="#method.value_length" class="fn">value_length</a>(&amp;self, i: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primit [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#220-227">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, length: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.iter" class="method"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#230-232">source</a><h4 class="code-header">pub fn <a href="#method.iter" class="fn">iter</a>(&amp;self) -&gt; <a class="type" href="../iterator/type.MapArrayIter.html" title="type arrow_array::iterator::MapArrayIter">MapArrayIter</a>&lt;'_&gt;</h4></section></summary><div class="docblock"><p>constructs a  [...]
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-MapArray-1" class="impl"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#255-344">source</a><a href="#impl-MapArray-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="map_array/struct.MapArray.html" title="struct arrow_array::array::map_array::MapArray">MapArray</a></h3></section></summary><div class="impl-items"><section id="me [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-MapArray-1" class="impl"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#255-344">source</a><a href="#impl-MapArray-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="map_array/struct.MapArray.html" title="struct arrow_array::array::map_array::MapArray">MapArray</a></h3></section></summary><div class="impl-items"><section id="me [...]
     keys: 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 = &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;,
     values: &amp;dyn <a class="trait" href="trait.Array.html" title="trait arrow_array::array::Array">Array</a>,
     entry_offsets: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>]
 ) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, ArrowError&gt;</h4></section></summary><div class="docblock"><p>Creates map array from provided keys, values and entry_offsets.</p>
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-MapArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#346-400">source</a><a href="#impl-Array-for-MapArray" class="anchor">§</a><h3 class="code-header"> [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#351-353">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></sec [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#351-353">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct" h [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#379-381">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://doc.r [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#392-399">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class="fn">ge [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-MapArray" class="impl"><a href="#impl-RefUnwindSafe-for-MapArray" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/ [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/arrow_array/array/struct.NullArray.html b/arrow_array/array/struct.NullArray.html
index b19e7f3625..d3af9fc17a 100644
--- a/arrow_array/array/struct.NullArray.html
+++ b/arrow_array/array/struct.NullArray.html
@@ -17,13 +17,13 @@ other [<code>DataType</code>].</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../src/arrow_array/array/null_array.rs.html#60-67">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, offset: <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">us [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.builder" class="method"><a class="src rightside" href="../../src/arrow_array/array/null_array.rs.html#70-72">source</a><h4 class="code-header">pub fn <a href="#method.builder" class="fn">builder</a>(capacity: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="../builder/null_builder/struct.NullBuilder.html" title="struct arro [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-NullArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/null_array.rs.html#75-127">source</a><a href="#impl-Array-for-NullArray" class="anchor">§</a><h3 class="code-header [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/null_array.rs.html#80-82">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></sect [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/null_array.rs.html#80-82">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct" hr [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/null_array.rs.html#108-110">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://doc. [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/null_array.rs.html#124-126">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class="fn">g [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.is_null" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#220-222">source</a><a href="#method.is_null" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.is_null" class="fn">is_null</a>(&amp;self, index: <a class="primitive" href="ht [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
 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#242">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></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-NullArray" class="impl"><a href="#impl-RefUnwindSafe-for-NullArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/arrow_array/array/struct.PrimitiveArray.html b/arrow_array/array/struct.PrimitiveArray.html
index 559b09aaa7..135d87b7f7 100644
--- a/arrow_array/array/struct.PrimitiveArray.html
+++ b/arrow_array/array/struct.PrimitiveArray.html
@@ -213,14 +213,14 @@ will be casted to Null</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.precision" class="method"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#1434-1458">source</a><h4 class="code-header">pub fn <a href="#method.precision" class="fn">precision</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a></h4></section></summary><div class="docblock"><p>Returns the decimal precision of  [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.scale" class="method"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#1461-1485">source</a><h4 class="code-header">pub fn <a href="#method.scale" class="fn">scale</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i8.html">i8</a></h4></section></summary><div class="docblock"><p>Returns the decimal scale of this array</p>
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-PrimitiveArray%3CT%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#988-1036">source</a><a href="#impl-Array-for-PrimitiveArray%3CT%3E" class="anch [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#993-995">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4 [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#993-995">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="str [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#1021-1023">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#1033-1035">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
-</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-12" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#1377-1391">source</a><a href="#method.from-12" 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>(data: ArrayData) -&gt; Self</h4></section></summary><div class='docbloc [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-12" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#1377-1391">source</a><a href="#method.from-12" 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>(data: <a class="struct" href="../../arrow_data/data/struct.ArrayData.ht [...]
     data: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;&lt;<a class="struct" href="../types/struct.DurationMicrosecondType.html" title="struct arrow_array::types::DurationMicrosecondType">DurationMicrosecondType</a> as <a class="trait" href="../types/trait.ArrowPrimitiveType.html" title="trait arrow_array::types::ArrowPrimitiveType">ArrowPrimitiveType</a>&gt;::<a class="associatedtype" href="../types/trait. [...]
 ) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CVec%3C%3CDurationMillisecondType+as+ArrowPrimitiveType%3E::Native%3E%3E-for-PrimitiveArray%3CDurationMillisecondType%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#1321">source</a><a href="#impl-From%3CVec%3C%3CDurationMill [...]
     data: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;&lt;<a class="struct" href="../types/struct.DurationMillisecondType.html" title="struct arrow_array::types::DurationMillisecondType">DurationMillisecondType</a> as <a class="trait" href="../types/trait.ArrowPrimitiveType.html" title="trait arrow_array::types::ArrowPrimitiveType">ArrowPrimitiveType</a>&gt;::<a class="associatedtype" href="../types/trait. [...]
diff --git a/arrow_array/array/struct.RunArray.html b/arrow_array/array/struct.RunArray.html
index 0f38951bf2..500f3bd310 100644
--- a/arrow_array/array/struct.RunArray.html
+++ b/arrow_array/array/struct.RunArray.html
@@ -67,13 +67,13 @@ scaled well for larger inputs.
 See <a href="https://github.com/apache/arrow-rs/pull/3622#issuecomment-1407753727">https://github.com/apache/arrow-rs/pull/3622#issuecomment-1407753727</a> for more details.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#248-254">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, length: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-RunArray%3CT%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#305-388">source</a><a href="#impl-Array-for-RunArray%3CT%3E" class="anchor">§</a><h3 class= [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#310-312">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></sec [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#310-312">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct" h [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#338-340">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://doc.r [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#383-387">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class="fn">ge [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.is_null" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#220-222">source</a><a href="#method.is_null" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.is_null" class="fn">is_null</a>(&amp;self, index: <a class="primitive" href="ht [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
 <h4 id="example-1"><a href="#example-1">Example:</a></h4>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>arrow_array::{RunArray, PrimitiveArray, StringArray, types::Int16Type};
 
diff --git a/arrow_array/array/struct.StructArray.html b/arrow_array/array/struct.StructArray.html
index 70b0be3c4c..6117868150 100644
--- a/arrow_array/array/struct.StructArray.html
+++ b/arrow_array/array/struct.StructArray.html
@@ -89,13 +89,13 @@ the first field will always be selected.
 This issue will be addressed in <a href="https://issues.apache.org/jira/browse/ARROW-11178">ARROW-11178</a></p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../src/arrow_array/array/struct_array.rs.html#279-293">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, offset: <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 [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-StructArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/struct_array.rs.html#343-396">source</a><a href="#impl-Array-for-StructArray" class="anchor">§</a><h3 class="code [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/struct_array.rs.html#348-350">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></ [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/struct_array.rs.html#348-350">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/struct_array.rs.html#376-378">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://do [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/struct_array.rs.html#388-395">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class="fn" [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
-opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
+opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
 <p>Note: A schema can currently have duplicate field names, in which case
 the first field will always be selected.
 This issue will be addressed in <a href="https://issues.apache.org/jira/browse/ARROW-11178">ARROW-11178</a></p>
diff --git a/arrow_array/array/struct.TypedDictionaryArray.html b/arrow_array/array/struct.TypedDictionaryArray.html
index e715a06f94..5b655d50d6 100644
--- a/arrow_array/array/struct.TypedDictionaryArray.html
+++ b/arrow_array/array/struct.TypedDictionaryArray.html
@@ -20,7 +20,7 @@
 </div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-TypedDictionaryArray%3C'a,+K,+V%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#808-818">source</a><a href="#impl-TypedDictionaryArray%3C'a,+K,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, K: <a [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.values" class="method"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#815-817">source</a><h4 class="code-header">pub fn <a href="#method.values" class="fn">values</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a></h4></section></summary><div class="docblock"><p>Returns the values of this <a [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-TypedDictionaryArray%3C'a,+K,+V%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#820-872">source</a><a href="#impl-Array-for-TypedDictionaryArray% [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#825-827">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#825-827">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="st [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#853-855">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https: [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#869-871">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class= [...]
diff --git a/arrow_array/array/struct.TypedRunArray.html b/arrow_array/array/struct.TypedRunArray.html
index 071f47c0ab..20f754e2d9 100644
--- a/arrow_array/array/struct.TypedRunArray.html
+++ b/arrow_array/array/struct.TypedRunArray.html
@@ -21,7 +21,7 @@
 </div></details><details class="toggle method-toggle" open><summary><section id="method.values" class="method"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#549-551">source</a><h4 class="code-header">pub fn <a href="#method.values" class="fn">values</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a></h4></section></summary><div class="docblock"><p>Returns the values of this <a href=" [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.run_array" class="method"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#554-556">source</a><h4 class="code-header">pub fn <a href="#method.run_array" class="fn">run_array</a>(&amp;self) -&gt; &amp;'a <a class="struct" href="run_array/struct.RunArray.html" title="struct arrow_array::array::run_array::RunArray">RunArray</a>&lt;R&gt;</h4></section></summary><div class="docb [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-TypedRunArray%3C'a,+R,+V%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#559-611">source</a><a href="#impl-Array-for-TypedRunArray%3C'a,+R,+V%3E" class= [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#564-566">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></sec [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#564-566">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct" h [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#592-594">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://doc.r [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#608-610">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class="fn">ge [...]
diff --git a/arrow_array/array/struct.UnionArray.html b/arrow_array/array/struct.UnionArray.html
index dc2fcab1bb..a20e05730c 100644
--- a/arrow_array/array/struct.UnionArray.html
+++ b/arrow_array/array/struct.UnionArray.html
@@ -129,12 +129,12 @@ To check validity correctly you must check the underlying vector.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/union_array.rs.html#433-435">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">null_count</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></s [...]
 To get null count correctly you must check the underlying vector.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_any" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/union_array.rs.html#383-385">source</a><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.as_any" class="fn">as_any</a>(&amp;self) -&gt; &amp;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/union_array.rs.html#387-389">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></s [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/union_array.rs.html#387-389">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct" [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/union_array.rs.html#415-417">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://doc [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/union_array.rs.html#449-461">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.get_array_memory_size" class="fn"> [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
-includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
+includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt; <a cla [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id-1" 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-1" class="anchor">§</a><h4 class="code-header">fn <a  [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/arrow_array/array/struct_array/struct.StructArray.html b/arrow_array/array/struct_array/struct.StructArray.html
index 7f5535b99c..2416191489 100644
--- a/arrow_array/array/struct_array/struct.StructArray.html
+++ b/arrow_array/array/struct_array/struct.StructArray.html
@@ -89,13 +89,13 @@ the first field will always be selected.
 This issue will be addressed in <a href="https://issues.apache.org/jira/browse/ARROW-11178">ARROW-11178</a></p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.slice" class="method"><a class="src rightside" href="../../../src/arrow_array/array/struct_array.rs.html#279-293">source</a><h4 class="code-header">pub fn <a href="#method.slice" class="fn">slice</a>(&amp;self, offset: <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.h [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Array-for-StructArray" class="impl"><a class="src rightside" href="../../../src/arrow_array/array/struct_array.rs.html#343-396">source</a><a href="#impl-Array-for-StructArray" class="anchor">§</a><h3 class="c [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/struct_array.rs.html#348-350">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayDa [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/struct_array.rs.html#348-350">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a clas [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/struct_array.rs.html#376-378">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="h [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/struct_array.rs.html#388-395">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" clas [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
 includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
-opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
+opposite of <a href="../trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="../trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#256-258">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" c [...]
 <p>Note: A schema can currently have duplicate field names, in which case
 the first field will always be selected.
 This issue will be addressed in <a href="https://issues.apache.org/jira/browse/ARROW-11178">ARROW-11178</a></p>
diff --git a/arrow_array/array/trait.Array.html b/arrow_array/array/trait.Array.html
index 13579ca71a..4f906f73f4 100644
--- a/arrow_array/array/trait.Array.html
+++ b/arrow_array/array/trait.Array.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="An array in the arrow columnar format"><title>Array in arrow_array::array - 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=" [...]
 <details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 16 methods</span></summary>    // Required methods
     fn <a href="#tymethod.as_any" class="fn">as_any</a>(&amp;self) -&gt; &amp;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>;
-<span class="item-spacer"></span>    fn <a href="#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData;
-<span class="item-spacer"></span>    fn <a href="#tymethod.into_data" class="fn">into_data</a>(self) -&gt; ArrayData;
+<span class="item-spacer"></span>    fn <a href="#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct" href="../../arrow_data/data/struct.ArrayData.html" title="struct arrow_data::data::ArrayData">ArrayData</a>;
+<span class="item-spacer"></span>    fn <a href="#tymethod.into_data" class="fn">into_data</a>(self) -&gt; <a class="struct" href="../../arrow_data/data/struct.ArrayData.html" title="struct arrow_data::data::ArrayData">ArrayData</a>;
 <span class="item-spacer"></span>    fn <a href="#tymethod.data_type" class="fn">data_type</a>(&amp;self) -&gt; &amp;DataType;
 <span class="item-spacer"></span>    fn <a href="#tymethod.slice" class="fn">slice</a>(&amp;self, offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, length: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="type.ArrayRef.html" title="type arrow_array::array::ArrayRef">ArrayRef</a>;
 <span class="item-spacer"></span>    fn <a href="#tymethod.len" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>;
@@ -34,8 +34,8 @@ downcasted to a specific implementation.</p>
     .as_any()
     .downcast_ref::&lt;Int32Array&gt;()
     .expect(<span class="string">"Failed to downcast"</span>);</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.to_data" class="method"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#97">source</a><h4 class="code-header">fn <a href="#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></section></summary><div class="docblock"><p>Returns the underlying data of this array</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.into_data" class="method"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#102">source</a><h4 class="code-header">fn <a href="#tymethod.into_data" class="fn">into_data</a>(self) -&gt; ArrayData</h4></section></summary><div class="docblock"><p>Returns the underlying data of this array</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.to_data" class="method"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#97">source</a><h4 class="code-header">fn <a href="#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct" href="../../arrow_data/data/struct.ArrayData.html" title="struct arrow_data::data::ArrayData">ArrayData</a></h4></section></summary><div class="docblock"><p>Returns the underlying  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.into_data" class="method"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#102">source</a><h4 class="code-header">fn <a href="#tymethod.into_data" class="fn">into_data</a>(self) -&gt; <a class="struct" href="../../arrow_data/data/struct.ArrayData.html" title="struct arrow_data::data::ArrayData">ArrayData</a></h4></section></summary><div class="docblock"><p>Returns the underlyin [...]
 <p>Unlike <a href="trait.Array.html#tymethod.to_data" title="method arrow_array::array::Array::to_data"><code>Array::to_data</code></a> this consumes self, allowing it avoid unnecessary clones</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="tymethod.data_type" class="method"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#116">source</a><h4 class="code-header">fn <a href="#tymethod.data_type" class="fn">data_type</a>(&amp;self) -&gt; &amp;DataType</h4></section></summary><div class="docblock"><p>Returns a reference to the [<code>DataType</code>] of this array.</p>
 <h5 id="example-1"><a href="#example-1">Example:</a></h5>
@@ -147,5 +147,5 @@ and therefore would not appear in <a href="trait.Array.html#method.logical_nulls
 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#242">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-for-dyn+Array" class="impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#443-447">source</a><a href="#impl-PartialEq-for-dyn+Array" 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  [...]
 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#242">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-Sealed-for-dyn+Array" class="impl"><a class="src rightside" href="../../src/arrow_array/cast.rs.html#841">source</a><a href="#impl-Sealed-for-dyn+Array" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../cast/private/trait.Sealed.html" title="trait arrow_array::cast::private::Sealed">Sealed</a> for dyn <a class="trait" href="trait.Array.html" title=" [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Sealed-for-dyn+Array" class="impl"><a class="src rightside" href="../../src/arrow_array/cast.rs.html#841">source</a><a href="#impl-Sealed-for-dyn+Array" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../cast/private/trait.Sealed.html" title="trait arrow_array::cast::private::Sealed">Sealed</a> for dyn <a class="trait" href="trait.Array.html" title=" [...]
 </div><section id="impl-Array-for-TypedDictionaryArray%3C'a,+K,+V%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#820-872">source</a><a href="#impl-Array-for-TypedDictionaryArray%3C'a,+K,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, K: <a class="trait" href="../types/trait.ArrowDictionaryKeyType.html" title="trait arrow_array::types::ArrowDictionaryKeyType">ArrowDictionaryKeyType</a>, V: <a class="trait" href="https:// [...]
\ No newline at end of file
diff --git a/arrow_array/array/type.ArrayRef.html b/arrow_array/array/type.ArrayRef.html
index cd1abbdc09..371ff50bd0 100644
--- a/arrow_array/array/type.ArrayRef.html
+++ b/arrow_array/array/type.ArrayRef.html
@@ -5,7 +5,7 @@
     alloc: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>,
 }</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.ptr" class="structfield section-header"><a href="#structfield.ptr" class="anchor field">§</a><code>ptr: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ptr/non_null/struct.NonNull.html" title="struct core::ptr::non_null::NonNull">NonNull</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.ArcInner.html" title="str [...]
 </div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.as_any" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#288-290">source</a><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.as_any" class="fn">as_any</a>(&amp;self) -&gt; &amp;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::an [...]
-downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#292-294">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayData</h4></section>< [...]
+downcasted to a specific implementation. <a href="trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#292-294">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class="struct" href=". [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#320-322">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-la [...]
 opposite of <a href="trait.Array.html#method.is_null"><code>Self::is_null</code></a>. <a href="trait.Array.html#method.is_valid">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#336-338">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Array.html#method.null_count" class="fn">nu [...]
diff --git a/arrow_array/array/union_array/struct.UnionArray.html b/arrow_array/array/union_array/struct.UnionArray.html
index 08596c5392..dbd9a727ca 100644
--- a/arrow_array/array/union_array/struct.UnionArray.html
+++ b/arrow_array/array/union_array/struct.UnionArray.html
@@ -129,12 +129,12 @@ To check validity correctly you must check the underlying vector.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.null_count" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/union_array.rs.html#433-435">source</a><a href="#method.null_count" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.null_count" class="fn">null_count</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></ [...]
 To get null count correctly you must check the underlying vector.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.as_any" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/union_array.rs.html#383-385">source</a><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.as_any" class="fn">as_any</a>(&amp;self) -&gt; &amp;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::an [...]
-downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/union_array.rs.html#387-389">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; ArrayDat [...]
+downcasted to a specific implementation. <a href="../trait.Array.html#tymethod.as_any">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_data" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/union_array.rs.html#387-389">source</a><a href="#method.to_data" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.to_data" class="fn">to_data</a>(&amp;self) -&gt; <a class [...]
 Note that the underlying data can be shared by many arrays.
 This defaults to <code>0</code>. <a href="../trait.Array.html#tymethod.offset">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/union_array.rs.html#415-417">source</a><a href="#method.nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.nulls" class="fn">nulls</a>(&amp;self) -&gt; <a class="enum" href="ht [...]
 The buffers store bytes in the Arrow memory format, and include the data as well as the validity map.</div></details><details class="toggle method-toggle" open><summary><section id="method.get_array_memory_size" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/union_array.rs.html#449-461">source</a><a href="#method.get_array_memory_size" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#tymethod.get_array_memory_size" class [...]
 This value will always be greater than returned by <code>get_buffer_memory_size()</code> and
-includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
+includes the overhead of the data structures that contain the pointers to the various buffers.</div></details><details class="toggle method-toggle" open><summary><section id="method.logical_nulls" class="method trait-impl"><a class="src rightside" href="../../../src/arrow_array/array/mod.rs.html#195-197">source</a><a href="#method.logical_nulls" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Array.html#method.logical_nulls" class="fn">logical_nulls</a>(&amp;self) -&gt;  [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id-1" 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-1" class="anchor">§</a><h4 class="code-header">fn <a  [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/arrow_array/cast/fn.downcast_array.html b/arrow_array/cast/fn.downcast_array.html
index 341fa7ffdf..7e59f48515 100644
--- a/arrow_array/cast/fn.downcast_array.html
+++ b/arrow_array/cast/fn.downcast_array.html
@@ -1,5 +1,5 @@
 <!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="Downcasts a `dyn Array` to a concrete type"><title>downcast_array in arrow_array::cast - 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" cross [...]
-    T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;ArrayData&gt;,</div></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Downcasts a <code>dyn Array</code> to a concrete type</p>
+    T: <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_data/data/struct.ArrayData.html" title="struct arrow_data::data::ArrayData">ArrayData</a>&gt;,</div></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Downcasts a <code>dyn Array</code> to a concrete type</p>
 
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">struct </span>ConcreteBatch {
     col1: Int32Array,
diff --git a/help.html b/help.html
index c2b25356ee..78aa9c38ff 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 1f945483ff..2c3472ce5c 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/all.html b/parquet/all.html
index 28bd414d8a..de54e9fb29 100644
--- a/parquet/all.html
+++ b/parquet/all.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 all items in this crate"><title>List of all items in this crate</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.fi [...]
\ 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 all items in this crate"><title>List of all items in this crate</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.fi [...]
\ 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 ee6a9acde6..02a1b1261f 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="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 cl [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 cl [...]
 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#242">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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/arrow/arrow_reader/struct.RowSelection.html b/parquet/arrow/arrow_reader/struct.RowSelection.html
index 3aa2b8bcc0..f91ab02c3f 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="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside" href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 class [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-RowSelection" class="impl"><a class="src rightside" href="../../../src/parquet/arrow/arrow_reader/selection.rs.html#92">source</a><a href="#impl-Clone-for-RowSelection" class="anchor">§</a><h3 class [...]
 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#242">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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/arrow/buffer/dictionary_buffer/enum.DictionaryBuffer.html b/parquet/arrow/buffer/dictionary_buffer/enum.DictionaryBuffer.html
index effe9f7428..88074c661c 100644
--- a/parquet/arrow/buffer/dictionary_buffer/enum.DictionaryBuffer.html
+++ b/parquet/arrow/buffer/dictionary_buffer/enum.DictionaryBuffer.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="An array of variable length byte arrays that are potentially dictionary encoded and can be converted into a corresponding `ArrayRef`"><title>DictionaryBuffer in parquet::arrow::buffer::dictionary_buffer - Rust</title><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="An array of variable length byte arrays that are potentially dictionary encoded and can be converted into a corresponding `ArrayRef`"><title>DictionaryBuffer in parquet::arrow::buffer::dictionary_buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../.. [...]
     Dict {
         keys: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;K&gt;,
         values: <a class="type" href="../../../../arrow_array/array/type.ArrayRef.html" title="type arrow_array::array::ArrayRef">ArrayRef</a>,
@@ -8,20 +8,19 @@
     },
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An array of variable length byte arrays that are potentially dictionary encoded
 and can be converted into a corresponding <a href="../../../../arrow_array/array/type.ArrayRef.html" title="type arrow_array::array::ArrayRef"><code>ArrayRef</code></a></p>
-</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Dict" class="variant"><a href="#variant.Dict" class="anchor">§</a><h3 class="code-header">Dict</h3></section><div class="sub-variant" id="variant.Dict.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Dict.field.keys" class="section-header"><a href="#variant.Dict.field.keys" class="anchor field">§</a><code> [...]
+</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Dict" class="variant"><a href="#variant.Dict" class="anchor">§</a><h3 class="code-header">Dict</h3></section><div class="sub-variant" id="variant.Dict.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Dict.field.keys" class="section-header"><a href="#variant.Dict.field.keys" class="anchor field">§</a><code> [...]
 <p>Returns None if the dictionary needs to be recomputed</p>
 <h5 id="panic"><a href="#panic">Panic</a></h5>
 <p>Panics if the dictionary is too large for <code>K</code></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.spill_values" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/dictionary_buffer.rs.html#96-125">source</a><h4 class="code-header">pub fn <a href="#method.spill_values" class="fn">spill_values</a>(&amp;mut self) -&gt; <a class="type" href="../../../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;&amp;mut <a class="struct" href="../offset_bu [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.spill_values" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/dictionary_buffer.rs.html#95-124">source</a><h4 class="code-header">pub fn <a href="#method.spill_values" class="fn">spill_values</a>(&amp;mut self) -&gt; <a class="type" href="../../../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;&amp;mut <a class="struct" href="../offset_bu [...]
 <p>If this is currently dictionary encoded, this will convert from the
 dictionary encoded representation</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.into_array" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/dictionary_buffer.rs.html#128-185">source</a><h4 class="code-header">pub fn <a href="#method.into_array" class="fn">into_array</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.into_array" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/dictionary_buffer.rs.html#127-184">source</a><h4 class="code-header">pub fn <a href="#method.into_array" class="fn">into_array</a>(
     self,
     null_buffer: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../../../arrow_buffer/buffer/immutable/struct.Buffer.html" title="struct arrow_buffer::buffer::immutable::Buffer">Buffer</a>&gt;,
     data_type: &amp;<a class="enum" href="../../../../arrow_schema/datatype/enum.DataType.html" title="enum arrow_schema::datatype::DataType">ArrowType</a>
 ) -&gt; <a class="type" href="../../../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;<a class="type" href="../../../../arrow_array/array/type.ArrayRef.html" title="type arrow_array::array::ArrayRef">ArrayRef</a>&gt;</h4></section></summary><div class="docblock"><p>Converts this into an <a href="../../../../arrow_array/array/type.ArrayRef.html" title="type arrow_array::array::ArrayRef"><code>ArrayRef</code></a> with the provided <code>data_type</code> and <co [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BufferQueue-for-DictionaryBuffer%3CK,+V%3E" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/dictionary_buffer.rs.html#214-240">source</a><a href="#impl-BufferQueue-for-Diction [...]
-to append data to the end of this <a href="../../record_reader/buffer/trait.BufferQueue.html" title="trait parquet::arrow::record_reader::buffer::BufferQueue"><code>BufferQueue</code></a> <a href="../../record_reader/buffer/trait.BufferQueue.html#tymethod.get_output_slice">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.truncate_buffer" class="method trait-impl"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/dictio [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Default-for-DictionaryBuffer%3CK,+V%3E" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/dictionary_buffer.rs.html#34-40">source</a><a href="#impl-Default-for-DictionaryBuffer% [...]
     &amp;mut self,
     read_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     values_read: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
@@ -29,7 +28,7 @@ to append data to the end of this <a href="../../record_reader/buffer/trait.Buff
     valid_mask: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]
 )</h4></section></summary><div class='docblock'>If a column contains nulls, more level data may be read than value data, as null
 values are not encoded. Therefore, first the levels data is read, the null count
-determined, and then the corresponding number of values read to a <a href="../../record_reader/buffer/trait.ValuesBuffer.html" title="trait parquet::arrow::record_reader::buffer::ValuesBuffer"><code>ValuesBuffer</code></a>. <a href="../../record_reader/buffer/trait.ValuesBuffer.html#tymethod.pad_nulls">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ValuesBufferSlice-for-DictionaryBuffer%3CK,+V%3E" class="impl"><a c [...]
+determined, and then the corresponding number of values read to a <a href="../../record_reader/buffer/trait.ValuesBuffer.html" title="trait parquet::arrow::record_reader::buffer::ValuesBuffer"><code>ValuesBuffer</code></a>. <a href="../../record_reader/buffer/trait.ValuesBuffer.html#tymethod.pad_nulls">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§ [...]
     K: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,
     V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-DictionaryBuffer%3CK,+V%3E" class="impl"><a href="#impl-UnwindSafe-for-DictionaryBuffer%3CK,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;K, V&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_saf [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/arrow/buffer/dictionary_buffer/index.html b/parquet/arrow/buffer/dictionary_buffer/index.html
index dcd59ef08f..c01908f264 100644
--- a/parquet/arrow/buffer/dictionary_buffer/index.html
+++ b/parquet/arrow/buffer/dictionary_buffer/index.html
@@ -1,2 +1,2 @@
-<!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 `dictionary_buffer` mod in crate `parquet`."><title>parquet::arrow::buffer::dictionary_buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel [...]
+<!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 `dictionary_buffer` mod in crate `parquet`."><title>parquet::arrow::buffer::dictionary_buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel [...]
 and can be converted into a corresponding <a href="../../../../arrow_array/array/type.ArrayRef.html" title="type arrow_array::array::ArrayRef"><code>ArrayRef</code></a></div></li></ul></section></div></main></body></html>
\ No newline at end of file
diff --git a/parquet/arrow/buffer/offset_buffer/index.html b/parquet/arrow/buffer/offset_buffer/index.html
index faf072ecfb..ac52268345 100644
--- a/parquet/arrow/buffer/offset_buffer/index.html
+++ b/parquet/arrow/buffer/offset_buffer/index.html
@@ -1,2 +1,2 @@
-<!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 `offset_buffer` mod in crate `parquet`."><title>parquet::arrow::buffer::offset_buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preloa [...]
+<!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 `offset_buffer` mod in crate `parquet`."><title>parquet::arrow::buffer::offset_buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preloa [...]
 a corresponding <a href="../../../../arrow_array/array/type.ArrayRef.html" title="type arrow_array::array::ArrayRef"><code>ArrayRef</code></a></div></li></ul></section></div></main></body></html>
\ No newline at end of file
diff --git a/parquet/arrow/buffer/offset_buffer/struct.OffsetBuffer.html b/parquet/arrow/buffer/offset_buffer/struct.OffsetBuffer.html
index ef6f8f1a0c..e9c227c4c1 100644
--- a/parquet/arrow/buffer/offset_buffer/struct.OffsetBuffer.html
+++ b/parquet/arrow/buffer/offset_buffer/struct.OffsetBuffer.html
@@ -1,15 +1,15 @@
-<!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 buffer of variable-sized byte arrays that can be converted into a corresponding `ArrayRef`"><title>OffsetBuffer in parquet::arrow::buffer::offset_buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98ef [...]
+<!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 buffer of variable-sized byte arrays that can be converted into a corresponding `ArrayRef`"><title>OffsetBuffer in parquet::arrow::buffer::offset_buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98ef [...]
     pub offsets: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;I&gt;,
     pub values: <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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A buffer of variable-sized byte arrays that can be converted into
 a corresponding <a href="../../../../arrow_array/array/type.ArrayRef.html" title="type arrow_array::array::ArrayRef"><code>ArrayRef</code></a></p>
-</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.offsets" class="structfield section-header"><a href="#structfield.offsets" class="anchor field">§</a><code>offsets: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;I&gt;</code></span><span id="structfield.values" class="structfield section-header"><a href="#structfield.values" cl [...]
-</div></details><section id="method.is_empty" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#52-54">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><details class="toggle method-toggle" open><summary><section id="method.try_push" class="method"><a class="src right [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.offsets" class="structfield section-header"><a href="#structfield.offsets" class="anchor field">§</a><code>offsets: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;I&gt;</code></span><span id="structfield.values" class="structfield section-header"><a href="#structfield.values" cl [...]
+</div></details><section id="method.is_empty" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#51-53">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><details class="toggle method-toggle" open><summary><section id="method.try_push" class="method"><a class="src right [...]
 the start of a UTF-8 codepoint</p>
 <p>Note: This does not verify that the entirety of <code>data</code> is valid
 UTF-8. This should be done by calling <a href="struct.OffsetBuffer.html#method.check_valid_utf8" title="method parquet::arrow::buffer::offset_buffer::OffsetBuffer::check_valid_utf8"><code>Self::check_valid_utf8</code></a> after
 all data has been written</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.extend_from_dictionary" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#90-111">source</a><h4 class="code-header">pub fn <a href="#method.extend_from_dictionary" class="fn">extend_from_dictionary</a>&lt;K: <a class="trait" href="../../../../arrow_buffer/native/trait.ArrowNativeType.html" title="trait arrow_buffer::native::ArrowNativeType">ArrowN [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.extend_from_dictionary" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#89-110">source</a><h4 class="code-header">pub fn <a href="#method.extend_from_dictionary" class="fn">extend_from_dictionary</a>&lt;K: <a class="trait" href="../../../../arrow_buffer/native/trait.ArrowNativeType.html" title="trait arrow_buffer::native::ArrowNativeType">ArrowN [...]
     &amp;mut self,
     keys: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[K]</a>,
     dict_offsets: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[V]</a>,
@@ -18,18 +18,17 @@ all data has been written</p>
 <p>For each value <code>key</code> in <code>keys</code> this will insert
 <code>&amp;dict_values[dict_offsets[key]..dict_offsets[key+1]]</code></p>
 <p>Note: This will validate offsets are valid</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.check_valid_utf8" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#120-125">source</a><h4 class="code-header">pub fn <a href="#method.check_valid_utf8" class="fn">check_valid_utf8</a>(&amp;self, start_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../../erro [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.check_valid_utf8" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#119-124">source</a><h4 class="code-header">pub fn <a href="#method.check_valid_utf8" class="fn">check_valid_utf8</a>(&amp;self, start_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../../erro [...]
 <p>This MUST be combined with validating that the offsets start on a character
 boundary, otherwise it would be possible for the values array to be a valid UTF-8
 sequence, but not the individual string slices it contains</p>
 <p><a href="struct.OffsetBuffer.html#method.try_push" title="method parquet::arrow::buffer::offset_buffer::OffsetBuffer::try_push"><code>Self::try_push</code></a> can perform this validation check on insertion</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.into_array" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#128-141">source</a><h4 class="code-header">pub fn <a href="#method.into_array" class="fn">into_array</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.into_array" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#127-140">source</a><h4 class="code-header">pub fn <a href="#method.into_array" class="fn">into_array</a>(
     self,
     null_buffer: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../../../arrow_buffer/buffer/immutable/struct.Buffer.html" title="struct arrow_buffer::buffer::immutable::Buffer">Buffer</a>&gt;,
     data_type: <a class="enum" href="../../../../arrow_schema/datatype/enum.DataType.html" title="enum arrow_schema::datatype::DataType">ArrowType</a>
 ) -&gt; <a class="type" href="../../../../arrow_array/array/type.ArrayRef.html" title="type arrow_array::array::ArrayRef">ArrayRef</a></h4></section></summary><div class="docblock"><p>Converts this into an <a href="../../../../arrow_array/array/type.ArrayRef.html" title="type arrow_array::array::ArrayRef"><code>ArrayRef</code></a> with the provided <code>data_type</code> and <code>null_buffer</code></p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BufferQueue-for-OffsetBuffer%3CI%3E" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#144-159">source</a><a href="#impl-BufferQueue-for-OffsetBuffer%3CI%3 [...]
-to append data to the end of this <a href="../../record_reader/buffer/trait.BufferQueue.html" title="trait parquet::arrow::record_reader::buffer::BufferQueue"><code>BufferQueue</code></a> <a href="../../record_reader/buffer/trait.BufferQueue.html#tymethod.get_output_slice">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.truncate_buffer" class="method trait-impl"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-OffsetBuffer%3CI%3E" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#28">source</a><a href="#impl-Debug-for-OffsetBuffer%3CI%3E" class="anchor" [...]
     &amp;mut self,
     read_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     values_read: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
@@ -37,7 +36,7 @@ to append data to the end of this <a href="../../record_reader/buffer/trait.Buff
     valid_mask: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]
 )</h4></section></summary><div class='docblock'>If a column contains nulls, more level data may be read than value data, as null
 values are not encoded. Therefore, first the levels data is read, the null count
-determined, and then the corresponding number of values read to a <a href="../../record_reader/buffer/trait.ValuesBuffer.html" title="trait parquet::arrow::record_reader::buffer::ValuesBuffer"><code>ValuesBuffer</code></a>. <a href="../../record_reader/buffer/trait.ValuesBuffer.html#tymethod.pad_nulls">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ValuesBufferSlice-for-OffsetBuffer%3CI%3E" class="impl"><a class="s [...]
+determined, and then the corresponding number of values read to a <a href="../../record_reader/buffer/trait.ValuesBuffer.html" title="trait parquet::arrow::record_reader::buffer::ValuesBuffer"><code>ValuesBuffer</code></a>. <a href="../../record_reader/buffer/trait.ValuesBuffer.html#tymethod.pad_nulls">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§ [...]
     I: <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>,</div></h3></section><section id="impl-Send-for-OffsetBuffer%3CI%3E" class="impl"><a href="#impl-Send-for-OffsetBuffer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl&lt;I&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Sen [...]
     I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-OffsetBuffer%3CI%3E" class="impl"><a href="#impl-UnwindSafe-for-OffsetBuffer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl&lt;I&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">Unw [...]
     I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</div></h3></section></div><h2 id="blanket-implementations" class="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"><a class="src ri [...]
diff --git a/parquet/arrow/record_reader/buffer/index.html b/parquet/arrow/record_reader/buffer/index.html
index 4be1a432bb..fd151f2ebd 100644
--- a/parquet/arrow/record_reader/buffer/index.html
+++ b/parquet/arrow/record_reader/buffer/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 `buffer` mod in crate `parquet`."><title>parquet::arrow::record_reader::buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as=" [...]
\ 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 `buffer` mod in crate `parquet`."><title>parquet::arrow::record_reader::buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as=" [...]
\ No newline at end of file
diff --git a/parquet/arrow/record_reader/buffer/sidebar-items.js b/parquet/arrow/record_reader/buffer/sidebar-items.js
index a51538196f..c8fbba12a5 100644
--- a/parquet/arrow/record_reader/buffer/sidebar-items.js
+++ b/parquet/arrow/record_reader/buffer/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"trait":["BufferQueue","ValuesBuffer"]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"trait":["ValuesBuffer"]};
\ No newline at end of file
diff --git a/parquet/arrow/record_reader/buffer/trait.BufferQueue.html b/parquet/arrow/record_reader/buffer/trait.BufferQueue.html
deleted file mode 100644
index 1853a593a7..0000000000
--- a/parquet/arrow/record_reader/buffer/trait.BufferQueue.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!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 buffer that supports writing new data to the end, and removing data from the front"><title>BufferQueue in parquet::arrow::record_reader::buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295 [...]
-    type <a href="#associatedtype.Output" class="associatedtype">Output</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>;
-    type <a href="#associatedtype.Slice" class="associatedtype">Slice</a>: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>;
-
-    // Required methods
-    fn <a href="#tymethod.consume" class="fn">consume</a>(&amp;mut self) -&gt; Self::<a class="associatedtype" href="trait.BufferQueue.html#associatedtype.Output" title="type parquet::arrow::record_reader::buffer::BufferQueue::Output">Output</a>;
-<span class="item-spacer"></span>    fn <a href="#tymethod.get_output_slice" class="fn">get_output_slice</a>(&amp;mut self, batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; &amp;mut Self::<a class="associatedtype" href="trait.BufferQueue.html#associatedtype.Slice" title="type parquet::arrow::record_reader::buffer::BufferQueue::Slice">Slice</a>;
-<span class="item-spacer"></span>    fn <a href="#tymethod.truncate_buffer" class="fn">truncate_buffer</a>(&amp;mut self, len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>);
-}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A buffer that supports writing new data to the end, and removing data from the front</p>
-<p>Used by <a href="../type.RecordReader.html" title="type parquet::arrow::record_reader::RecordReader">RecordReader</a> to buffer up values before returning a
-potentially smaller number of values, corresponding to a whole number of semantic records</p>
-</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Output" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/buffer.rs.html#25">source</a><h4 class="code-header">type <a href="#associatedtype.Output" class="associatedtype">Output</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/c [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_output_slice" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/buffer.rs.html#37">source</a><h4 class="code-header">fn <a href="#tymethod.get_output_slice" class="fn">get_output_slice</a>(&amp;mut self, batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; &amp;mut Self::<a class="associatedtyp [...]
-to append data to the end of this <a href="trait.BufferQueue.html" title="trait parquet::arrow::record_reader::buffer::BufferQueue"><code>BufferQueue</code></a></p>
-<p>NB: writes to the returned slice will not update the length of <a href="trait.BufferQueue.html" title="trait parquet::arrow::record_reader::buffer::BufferQueue"><code>BufferQueue</code></a>
-instead a subsequent call should be made to <a href="trait.BufferQueue.html#tymethod.truncate_buffer" title="method parquet::arrow::record_reader::buffer::BufferQueue::truncate_buffer"><code>BufferQueue::truncate_buffer</code></a></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.truncate_buffer" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/buffer.rs.html#56">source</a><h4 class="code-header">fn <a href="#tymethod.truncate_buffer" class="fn">truncate_buffer</a>(&amp;mut self, len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Sets  [...]
-<p>Intended to be used in combination with <a href="trait.BufferQueue.html#tymethod.get_output_slice" title="method parquet::arrow::record_reader::buffer::BufferQueue::get_output_slice"><code>BufferQueue::get_output_slice</code></a></p>
-<h5 id="panics"><a href="#panics">Panics</a></h5>
-<p>Implementations must panic if <code>len</code> is beyond the initialized length</p>
-<p>Implementations may panic if <code>set_len</code> is called with less than what has been written</p>
-<p>This distinction is to allow for implementations that return a default initialized
-<a href="trait.BufferQueue.html#associatedtype.Slice" title="associated type parquet::arrow::record_reader::buffer::BufferQueue::Slice">BufferQueue::Slice`</a> which doesn’t track capacity and length separately</p>
-<p>For example, <a href="trait.BufferQueue.html" title="trait parquet::arrow::record_reader::buffer::BufferQueue"><code>BufferQueue</code></a> returns a default-initialized <code>&amp;mut [T]</code>, and does not
-track how much of this slice is actually written to by the caller. This is still
-safe as the slice is default-initialized.</p>
-</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="im [...]
\ No newline at end of file
diff --git a/parquet/arrow/record_reader/buffer/trait.ValuesBuffer.html b/parquet/arrow/record_reader/buffer/trait.ValuesBuffer.html
index 93ce34bf1e..ba70cb18f9 100644
--- a/parquet/arrow/record_reader/buffer/trait.ValuesBuffer.html
+++ b/parquet/arrow/record_reader/buffer/trait.ValuesBuffer.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 `BufferQueue` capable of storing column values"><title>ValuesBuffer in parquet::arrow::record_reader::buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as= [...]
+<!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 buffer that supports padding with nulls"><title>ValuesBuffer in parquet::arrow::record_reader::buffer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font"  [...]
     // Required method
     fn <a href="#tymethod.pad_nulls" class="fn">pad_nulls</a>(
         &amp;mut self,
@@ -7,8 +7,8 @@
         levels_read: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
         valid_mask: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]
     );
-}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A <a href="trait.BufferQueue.html" title="trait parquet::arrow::record_reader::buffer::BufferQueue"><code>BufferQueue</code></a> capable of storing column values</p>
-</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.pad_nulls" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/buffer.rs.html#97-103">source</a><h4 class="code-header">fn <a href="#tymethod.pad_nulls" class="fn">pad_nulls</a>(
+}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A buffer that supports padding with nulls</p>
+</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.pad_nulls" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/buffer.rs.html#36-42">source</a><h4 class="code-header">fn <a href="#tymethod.pad_nulls" class="fn">pad_nulls</a>(
     &amp;mut self,
     read_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     values_read: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
@@ -26,10 +26,10 @@ the non-null level positions. This is what this method does.</p>
 <li><code>levels_read</code> - the number of levels read</li>
 <li><code>valid_mask</code> - a packed mask of valid levels</li>
 </ul>
-</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="im [...]
+</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="im [...]
     &amp;mut self,
     read_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     values_read: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     levels_read: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     valid_mask: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]
-)</h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ValuesBuffer-for-OffsetBuffer%3CI%3E" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#161-209">source</a><a href="#impl-ValuesBuffer-for-OffsetBuffer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl&lt;I: <a class="trait" href="../../../../arrow [...]
\ No newline at end of file
+)</h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ValuesBuffer-for-OffsetBuffer%3CI%3E" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/buffer/offset_buffer.rs.html#143-191">source</a><a href="#impl-ValuesBuffer-for-OffsetBuffer%3CI%3E" class="anchor">§</a><h3 class="code-header">impl&lt;I: <a class="trait" href="../../../../arrow [...]
\ No newline at end of file
diff --git a/parquet/arrow/record_reader/definition_levels/enum.BufferInner.html b/parquet/arrow/record_reader/definition_levels/enum.BufferInner.html
index d050495ed5..34a548cdbf 100644
--- a/parquet/arrow/record_reader/definition_levels/enum.BufferInner.html
+++ b/parquet/arrow/record_reader/definition_levels/enum.BufferInner.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 `BufferInner` enum in crate `parquet`."><title>BufferInner in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf [...]
+<!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 `BufferInner` enum in crate `parquet`."><title>BufferInner in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf [...]
     Full {
         levels: <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="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>&gt;,
         nulls: <a class="struct" href="../../../../arrow_buffer/builder/boolean/struct.BooleanBufferBuilder.html" title="struct arrow_buffer::builder::boolean::BooleanBufferBuilder">BooleanBufferBuilder</a>,
diff --git a/parquet/arrow/record_reader/definition_levels/enum.MaybePacked.html b/parquet/arrow/record_reader/definition_levels/enum.MaybePacked.html
index ab01d35335..076e9e0d66 100644
--- a/parquet/arrow/record_reader/definition_levels/enum.MaybePacked.html
+++ b/parquet/arrow/record_reader/definition_levels/enum.MaybePacked.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 `MaybePacked` enum in crate `parquet`."><title>MaybePacked in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf [...]
+<!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 `MaybePacked` enum in crate `parquet`."><title>MaybePacked in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf [...]
     Packed(<a class="struct" href="struct.PackedDecoder.html" title="struct parquet::arrow::record_reader::definition_levels::PackedDecoder">PackedDecoder</a>),
     Fallback(<a class="struct" href="../../../column/reader/decoder/struct.DefinitionLevelDecoderImpl.html" title="struct parquet::column::reader::decoder::DefinitionLevelDecoderImpl">DefinitionLevelDecoderImpl</a>),
 }</code></pre><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Packed" class="variant"><a href="#variant.Packed" class="anchor">§</a><h3 class="code-header">Packed(<a class="struct" href="struct.PackedDecoder.html" title="struct parquet::arrow::record_reader::definition_levels::PackedDecoder">PackedDecoder</a>)</h3></section><section id="variant.Fallback" class="variant"><a href="#variant.Fal [...]
diff --git a/parquet/arrow/record_reader/definition_levels/index.html b/parquet/arrow/record_reader/definition_levels/index.html
index f2f2484a01..9b312d8b4e 100644
--- a/parquet/arrow/record_reader/definition_levels/index.html
+++ b/parquet/arrow/record_reader/definition_levels/index.html
@@ -1,2 +1,2 @@
-<!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 `definition_levels` mod in crate `parquet`."><title>parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><l [...]
+<!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 `definition_levels` mod in crate `parquet`."><title>parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><l [...]
 directly into a bitmask</div></li></ul><h2 id="enums" class="section-header"><a href="#enums">Enums</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.BufferInner.html" title="enum parquet::arrow::record_reader::definition_levels::BufferInner">BufferInner</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li><li><div class="item-name"><a class="enum" href="enum.MaybePacked.html" title="enum parquet::arrow::record_reader::definition_levels::May [...]
\ No newline at end of file
diff --git a/parquet/arrow/record_reader/definition_levels/struct.DefinitionLevelBuffer.html b/parquet/arrow/record_reader/definition_levels/struct.DefinitionLevelBuffer.html
index 13db81937d..f6b489608e 100644
--- a/parquet/arrow/record_reader/definition_levels/struct.DefinitionLevelBuffer.html
+++ b/parquet/arrow/record_reader/definition_levels/struct.DefinitionLevelBuffer.html
@@ -1,11 +1,11 @@
-<!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 `DefinitionLevelBuffer` struct in crate `parquet`."><title>DefinitionLevelBuffer in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regula [...]
+<!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 `DefinitionLevelBuffer` struct in crate `parquet`."><title>DefinitionLevelBuffer in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regula [...]
     inner: <a class="enum" href="enum.BufferInner.html" title="enum parquet::arrow::record_reader::definition_levels::BufferInner">BufferInner</a>,
     len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
 }</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.inner" class="structfield section-header"><a href="#structfield.inner" class="anchor field">§</a><code>inner: <a class="enum" href="enum.BufferInner.html" title="enum parquet::arrow::record_reader::definition_levels::BufferInner">BufferInner</a></code></span><span id="structfield.len" class="structfield section-header"><a href="#structfield.len" class="anchor [...]
 <p>Note: <code>buffer</code> and <code>builder</code> may contain more elements</p>
-</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-DefinitionLevelBuffer" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#57-115">source</a><a href="#impl-DefinitionLevelBuffer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href [...]
-</div></details><section id="method.set_len" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#95-98">source</a><h4 class="code-header">pub fn <a href="#method.set_len" class="fn">set_len</a>(&amp;mut self, len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section><details class="toggle method-toggle" open><summary><section id="method.consume_bitmask" class="method [...]
-</div></details><section id="method.nulls" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#109-114">source</a><h4 class="code-header">pub fn <a href="#method.nulls" class="fn">nulls</a>(&amp;self) -&gt; &amp;<a class="struct" href="../../../../arrow_buffer/builder/boolean/struct.BooleanBufferBuilder.html" title="struct arrow_buffer::builder::boolean::BooleanBufferBuilder">BooleanBufferBuilder</a></h4></section></div></de [...]
+</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-DefinitionLevelBuffer" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#55-108">source</a><a href="#impl-DefinitionLevelBuffer" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_bitmask" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#94-100">source</a><h4 class="code-header">pub fn <a href="#method.consume_bitmask" class="fn">consume_bitmask</a>(&amp;mut self) -&gt; <a class="struct" href="../../../../arrow_buffer/buffer/immutable/struct.Buffer.html" title="struct arrow_buffer::buffer::immutable::Buf [...]
+</div></details><section id="method.nulls" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#102-107">source</a><h4 class="code-header">pub fn <a href="#method.nulls" class="fn">nulls</a>(&amp;self) -&gt; &amp;<a class="struct" href="../../../../arrow_buffer/builder/boolean/struct.BooleanBufferBuilder.html" title="struct arrow_buffer::builder::boolean::BooleanBufferBuilder">BooleanBufferBuilder</a></h4></section></div></de [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/parquet/arrow/record_reader/definition_levels/struct.DefinitionLevelBufferDecoder.html b/parquet/arrow/record_reader/definition_levels/struct.DefinitionLevelBufferDecoder.html
index 50e3f449f6..53d79f59cc 100644
--- a/parquet/arrow/record_reader/definition_levels/struct.DefinitionLevelBufferDecoder.html
+++ b/parquet/arrow/record_reader/definition_levels/struct.DefinitionLevelBufferDecoder.html
@@ -1,15 +1,11 @@
-<!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 `DefinitionLevelBufferDecoder` struct in crate `parquet`."><title>DefinitionLevelBufferDecoder in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/Sourc [...]
+<!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 `DefinitionLevelBufferDecoder` struct in crate `parquet`."><title>DefinitionLevelBufferDecoder in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/Sourc [...]
     max_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>,
     decoder: <a class="enum" href="enum.MaybePacked.html" title="enum parquet::arrow::record_reader::definition_levels::MaybePacked">MaybePacked</a>,
-}</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.max_level" class="structfield section-header"><a href="#structfield.max_level" class="anchor field">§</a><code>max_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a></code></span><span id="structfield.decoder" class="structfield section-header"><a href="#structfield.decoder" class="anchor field">§</a><code>deco [...]
+}</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.max_level" class="structfield section-header"><a href="#structfield.max_level" class="anchor field">§</a><code>max_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a></code></span><span id="structfield.decoder" class="structfield section-header"><a href="#structfield.decoder" class="anchor field">§</a><code>deco [...]
     &amp;mut self,
-    writer: &amp;mut Self::<a class="associatedtype" href="../../../column/reader/decoder/trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>,
-    range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;
-) -&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'>Read definition level data into <code>out[range]</code> returning the number of levels read <a href="../../../column/reader/decoder/trait.DefinitionLevelDecoder.html#tymethod.read_def_levels">Read more</a></div></details><details  [...]
-    &amp;mut self,
-    num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
-    max_def_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>
-) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class='docblock'>Skips over <code>num_levels</code> definition levels <a href="../../../column/reader/decoder/trait.DefinitionLevelDecoder.html#tym [...]
+    writer: &amp;mut Self::<a class="associatedtype" href="../../../column/reader/decoder/trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>,
+    num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
+) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class='docblock'>Read up to <code>num_levels</code> definition levels into <code>out</code> <a href="../../../column/reader/decoder/trait.Definitio [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/parquet/arrow/record_reader/definition_levels/struct.PackedDecoder.html b/parquet/arrow/record_reader/definition_levels/struct.PackedDecoder.html
index 405481f9d9..2654f7b7ff 100644
--- a/parquet/arrow/record_reader/definition_levels/struct.PackedDecoder.html
+++ b/parquet/arrow/record_reader/definition_levels/struct.PackedDecoder.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="An optimized decoder for decoding RLE and BIT_PACKED data with a bit width of 1 directly into a bitmask"><title>PackedDecoder in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/Sourc [...]
+<!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="An optimized decoder for decoding RLE and BIT_PACKED data with a bit width of 1 directly into a bitmask"><title>PackedDecoder in parquet::arrow::record_reader::definition_levels - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/Sourc [...]
     data: Bytes,
     data_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     rle_left: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
@@ -15,12 +15,12 @@ but it can exploit properties of the encoded data to reduce work further</p>
 <li>Packed runs are already bitmask encoded and can simply be appended</li>
 <li>Runs of 1 or 0 bits can be efficiently appended with byte (or larger) operations</li>
 </ul>
-</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.data" class="structfield section-header"><a href="#structfield.data" class="anchor field">§</a><code>data: Bytes</code></span><span id="structfield.data_offset" class="structfield section-header"><a href="#structfield.data_offset" class="anchor field">§</a><code>data_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.ht [...]
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PackedDecoder-1" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#276-361">source</a><a href="#impl-PackedDecoder-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.PackedDecoder.html" title="struct parquet::arrow::record_reader::definition_levels::PackedDecoder">PackedDecoder</a></h3>< [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.data" class="structfield section-header"><a href="#structfield.data" class="anchor field">§</a><code>data: Bytes</code></span><span id="structfield.data_offset" class="structfield section-header"><a href="#structfield.data_offset" class="anchor field">§</a><code>data_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.ht [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PackedDecoder-1" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#261-346">source</a><a href="#impl-PackedDecoder-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.PackedDecoder.html" title="struct parquet::arrow::record_reader::definition_levels::PackedDecoder">PackedDecoder</a></h3>< [...]
     &amp;mut self,
     buffer: &amp;mut <a class="struct" href="../../../../arrow_buffer/builder/boolean/struct.BooleanBufferBuilder.html" title="struct arrow_buffer::builder::boolean::BooleanBufferBuilder">BooleanBufferBuilder</a>,
     len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
-) -&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><details class="toggle method-toggle" open><summary><section id="method.skip" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#331-360">source</a><h4 class="code-header">fn <a href="#method.skip" [...]
+) -&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><details class="toggle method-toggle" open><summary><section id="method.skip" class="method"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#316-345">source</a><h4 class="code-header">fn <a href="#method.skip" [...]
 <p>Returns the number of values skipped and the number of levels skipped</p>
 </div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-PackedDecoder" class="impl"><a href="#impl-RefUnwindSafe-for-PackedDecoder" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html"  [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/arrow/record_reader/fn.packed_null_mask.html b/parquet/arrow/record_reader/fn.packed_null_mask.html
index f2a129ae8a..82313a61dc 100644
--- a/parquet/arrow/record_reader/fn.packed_null_mask.html
+++ b/parquet/arrow/record_reader/fn.packed_null_mask.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="Returns true if we do not need to unpack the nullability for this column, this is only possible if the max definition level is 1, and corresponds to nulls at the leaf level, as opposed to a nullable parent nested type"><title>packed_null_mask in parquet::arrow::record_reader - Rust</titl [...]
+<!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="Returns true if we do not need to unpack the nullability for this column, this is only possible if the max definition level is 1, and corresponds to nulls at the leaf level, as opposed to a nullable parent nested type"><title>packed_null_mask in parquet::arrow::record_reader - Rust</titl [...]
 only possible if the max definition level is 1, and corresponds to nulls at the
 leaf level, as opposed to a nullable parent nested type</p>
 </div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/parquet/arrow/record_reader/index.html b/parquet/arrow/record_reader/index.html
index 785286e0b5..c19d3bd856 100644
--- a/parquet/arrow/record_reader/index.html
+++ b/parquet/arrow/record_reader/index.html
@@ -1,3 +1,3 @@
-<!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 `record_reader` mod in crate `parquet`."><title>parquet::arrow::record_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font [...]
+<!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 `record_reader` mod in crate `parquet`."><title>parquet::arrow::record_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font [...]
 only possible if the max definition level is 1, and corresponds to nulls at the
 leaf level, as opposed to a nullable parent nested type</div></li></ul><h2 id="types" class="section-header"><a href="#types">Type Aliases</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.ColumnReader.html" title="type parquet::arrow::record_reader::ColumnReader">ColumnReader</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li><li><div class="item-name"><a class="type" href="type.RecordReader.html" title="type parquet::arrow::record_reader [...]
\ No newline at end of file
diff --git a/parquet/arrow/record_reader/struct.GenericRecordReader.html b/parquet/arrow/record_reader/struct.GenericRecordReader.html
index 4be3619035..ca26ae0605 100644
--- a/parquet/arrow/record_reader/struct.GenericRecordReader.html
+++ b/parquet/arrow/record_reader/struct.GenericRecordReader.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 generic stateful column reader that delimits semantic records"><title>GenericRecordReader in parquet::arrow::record_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="p [...]
+<!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 generic stateful column reader that delimits semantic records"><title>GenericRecordReader in parquet::arrow::record_reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="p [...]
     column_desc: <a class="type" href="../../schema/types/type.ColumnDescPtr.html" title="type parquet::schema::types::ColumnDescPtr">ColumnDescPtr</a>,
     values: V,
     def_levels: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="definition_levels/struct.DefinitionLevelBuffer.html" title="struct parquet::arrow::record_reader::definition_levels::DefinitionLevelBuffer">DefinitionLevelBuffer</a>&gt;,
@@ -12,40 +12,38 @@ public implementations. As such this type signature may be changed without
 breaking downstream users as it can only be constructed through type aliases</p>
 </div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.column_desc" class="structfield section-header"><a href="#structfield.column_desc" class="anchor field">§</a><code>column_desc: <a class="type" href="../../schema/types/type.ColumnDescPtr.html" title="type parquet::schema::types::ColumnDescPtr">ColumnDescPtr</a></code></span><span id="structfield.values" class="structfield section-header"><a href="#structfi [...]
 </div><span id="structfield.num_records" class="structfield section-header"><a href="#structfield.num_records" class="anchor field">§</a><code>num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span><div class="docblock"><p>Number of buffered records</p>
-</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-GenericRecordReader%3CV,+CV%3E" class="impl"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#63-72">source</a><a href="#impl-GenericRecordReader%3CV,+CV%3E" class="anchor">§</a><h3 class="code-header">impl&lt;V, CV&gt; <a class= [...]
-    V: <a class="trait" href="buffer/trait.ValuesBuffer.html" title="trait parquet::arrow::record_reader::buffer::ValuesBuffer">ValuesBuffer</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,
-    CV: <a class="trait" href="../../column/reader/decoder/trait.ColumnValueDecoder.html" title="trait parquet::column::reader::decoder::ColumnValueDecoder">ColumnValueDecoder</a>&lt;Slice = V::<a class="associatedtype" href="buffer/trait.BufferQueue.html#associatedtype.Slice" title="type parquet::arrow::record_reader::buffer::BufferQueue::Slice">Slice</a>&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.ne [...]
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-GenericRecordReader%3CV,+CV%3E-1" class="impl"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#74-247">source</a><a href="#impl-GenericRecordReader%3CV,+CV%3E-1" class="anchor">§</a><h3 class="code-header">impl&lt;V, CV&gt; <a class="struct" href="struct.GenericRecordReader.html" title="struct parquet::arrow::record_reader::GenericRecordReader">G [...]
+</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-GenericRecordReader%3CV,+CV%3E" class="impl"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#63-223">source</a><a href="#impl-GenericRecordReader%3CV,+CV%3E" class="anchor">§</a><h3 class="code-header">impl&lt;V, CV&gt; <a class [...]
     V: <a class="trait" href="buffer/trait.ValuesBuffer.html" title="trait parquet::arrow::record_reader::buffer::ValuesBuffer">ValuesBuffer</a>,
-    CV: <a class="trait" href="../../column/reader/decoder/trait.ColumnValueDecoder.html" title="trait parquet::column::reader::decoder::ColumnValueDecoder">ColumnValueDecoder</a>&lt;Slice = V::<a class="associatedtype" href="buffer/trait.BufferQueue.html#associatedtype.Slice" title="type parquet::arrow::record_reader::buffer::BufferQueue::Slice">Slice</a>&gt;,</div></h3></section></summary><div class="impl-items"><section id="method.new_with_records" class="method"><a class="src rightsi [...]
+    CV: <a class="trait" href="../../column/reader/decoder/trait.ColumnValueDecoder.html" title="trait parquet::column::reader::decoder::ColumnValueDecoder">ColumnValueDecoder</a>&lt;Buffer = V&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#69-84">source</a><h4 class="code-header">pub fn <a href="#metho [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_page_reader" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#87-106">source</a><h4 class="code-header">pub fn <a href="#method.set_page_reader" class="fn">set_page_reader</a>(
     &amp;mut self,
     page_reader: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../../column/page/trait.PageReader.html" title="trait parquet::column::page::PageReader">PageReader</a>&gt;
 ) -&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"><p>Set the current page reader.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read_records" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#123-138">source</a><h4 class="code-header">pub fn <a href="#method.read_records" class="fn">read_records</a>(&amp;mut self, num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../errors/type.Result.htm [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read_records" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#113-128">source</a><h4 class="code-header">pub fn <a href="#method.read_records" class="fn">read_records</a>(&amp;mut self, num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../errors/type.Result.htm [...]
 <h5 id="returns"><a href="#returns">Returns</a></h5>
 <p>Number of actual records read.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.skip_records" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#145-150">source</a><h4 class="code-header">pub fn <a href="#method.skip_records" class="fn">skip_records</a>(&amp;mut self, num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../errors/type.Result.htm [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.skip_records" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#135-140">source</a><h4 class="code-header">pub fn <a href="#method.skip_records" class="fn">skip_records</a>(&amp;mut self, num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../errors/type.Result.htm [...]
 <h5 id="returns-1"><a href="#returns-1">Returns</a></h5>
 <p>Number of records skipped</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.num_records" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#154-156">source</a><h4 class="code-header">pub fn <a href="#method.num_records" class="fn">num_records</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 number of reco [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.num_values" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#161-163">source</a><h4 class="code-header">pub fn <a href="#method.num_values" class="fn">num_values</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 number of values s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.num_records" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#144-146">source</a><h4 class="code-header">pub fn <a href="#method.num_records" class="fn">num_records</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 number of reco [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.num_values" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#151-153">source</a><h4 class="code-header">pub fn <a href="#method.num_values" class="fn">num_values</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 number of values s [...]
 If the parquet column is not repeated, it should be equals to <code>num_records</code>,
 otherwise it should be larger than or equal to <code>num_records</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_def_levels" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#169-171">source</a><h4 class="code-header">pub fn <a href="#method.consume_def_levels" class="fn">consume_def_levels</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class= [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_def_levels" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#159-161">source</a><h4 class="code-header">pub fn <a href="#method.consume_def_levels" class="fn">consume_def_levels</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class= [...]
 The implementation has side effects. It will create a new buffer to hold those
 definition level values that have already been read into memory but not counted
 as record values, e.g. those from <code>self.num_values</code> to <code>self.values_written</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_rep_levels" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#175-179">source</a><h4 class="code-header">pub fn <a href="#method.consume_rep_levels" class="fn">consume_rep_levels</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class= [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_rep_levels" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#165-167">source</a><h4 class="code-header">pub fn <a href="#method.consume_rep_levels" class="fn">consume_rep_levels</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class= [...]
 The side effect is similar to <code>consume_def_levels</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_record_data" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#183-185">source</a><h4 class="code-header">pub fn <a href="#method.consume_record_data" class="fn">consume_record_data</a>(&amp;mut self) -&gt; V::<a class="associatedtype" href="buffer/trait.BufferQueue.html#associatedtype.Output" title="type parquet::arrow::record_reader::buffer::B [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_record_data" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#171-173">source</a><h4 class="code-header">pub fn <a href="#method.consume_record_data" class="fn">consume_record_data</a>(&amp;mut self) -&gt; V</h4></section></summary><div class="docblock"><p>Returns currently stored buffer data.
 The side effect is similar to <code>consume_def_levels</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_bitmap_buffer" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#189-191">source</a><h4 class="code-header">pub fn <a href="#method.consume_bitmap_buffer" class="fn">consume_bitmap_buffer</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt; [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_bitmap_buffer" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#177-179">source</a><h4 class="code-header">pub fn <a href="#method.consume_bitmap_buffer" class="fn">consume_bitmap_buffer</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt; [...]
 The side effect is similar to <code>consume_def_levels</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.reset" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#196-199">source</a><h4 class="code-header">pub fn <a href="#method.reset" class="fn">reset</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Reset state of record reader.
+</div></details><details class="toggle method-toggle" open><summary><section id="method.reset" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#184-187">source</a><h4 class="code-header">pub fn <a href="#method.reset" class="fn">reset</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Reset state of record reader.
 Should be called after consuming data, e.g. <code>consume_rep_levels</code>,
 <code>consume_rep_levels</code>, <code>consume_record_data</code> and <code>consume_bitmap_buffer</code>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_bitmap" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#202-206">source</a><h4 class="code-header">pub fn <a href="#method.consume_bitmap" class="fn">consume_bitmap</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" hre [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read_one_batch" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#209-246">source</a><h4 class="code-header">fn <a href="#method.read_one_batch" class="fn">read_one_batch</a>(&amp;mut self, batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../errors/type.Result.ht [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.consume_bitmap" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#190-194">source</a><h4 class="code-header">pub fn <a href="#method.consume_bitmap" class="fn">consume_bitmap</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" hre [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read_one_batch" class="method"><a class="src rightside" href="../../../src/parquet/arrow/record_reader/mod.rs.html#197-222">source</a><h4 class="code-header">fn <a href="#method.read_one_batch" class="fn">read_one_batch</a>(&amp;mut self, batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../errors/type.Result.ht [...]
 </div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-GenericRecordReader%3CV,+CV%3E" class="impl"><a href="#impl-RefUnwindSafe-for-GenericRecordReader%3CV,+CV%3E" class="anchor">§</a><h3 class="code-header">impl&lt;V, CV&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/c [...]
     CV: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
     V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-Sync-for-GenericRecordReader%3CV,+CV%3E" class="impl"><a href="#impl-Sync-for-GenericRecordReader%3CV,+CV%3E" class="anchor">§</a><h3 class="code-header">impl&lt;V, CV&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="str [...]
diff --git a/parquet/basic/enum.ConvertedType.html b/parquet/basic/enum.ConvertedType.html
index 59c87ce9d2..f1213b9efb 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="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="https:/ [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-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="https:/ [...]
 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#242">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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/basic/enum.LogicalType.html b/parquet/basic/enum.LogicalType.html
index 3bea786395..a810dae917 100644
--- a/parquet/basic/enum.LogicalType.html
+++ b/parquet/basic/enum.LogicalType.html
@@ -29,7 +29,7 @@
 <p>This is an <em>entirely new</em> struct as of version
 4.0.0. The struct previously named <code>LogicalType</code> was renamed to
 <a href="enum.ConvertedType.html" title="enum parquet::basic::ConvertedType"><code>ConvertedType</code></a>. Please see the README.md for more details.</p>
-</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.String" class="variant"><a href="#variant.String" class="anchor">§</a><h3 class="code-header">String</h3></section><section id="variant.Map" class="variant"><a href="#variant.Map" class="anchor">§</a><h3 class="code-header">Map</h3></section><section id="variant.List" class="variant"><a href="#variant.List" class="anchor">§</a>< [...]
+</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.String" class="variant"><a href="#variant.String" class="anchor">§</a><h3 class="code-header">String</h3></section><section id="variant.Map" class="variant"><a href="#variant.Map" class="anchor">§</a><h3 class="code-header">Map</h3></section><section id="variant.List" class="variant"><a href="#variant.List" 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#242">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-LogicalType" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#170">source</a><a href="#impl-Eq-for-LogicalType" 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="enum" href="enum.LogicalType.html" title="enum parq [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/basic/enum.PageType.html b/parquet/basic/enum.PageType.html
index e02a805a04..9da6bc53e7 100644
--- a/parquet/basic/enum.PageType.html
+++ b/parquet/basic/enum.PageType.html
@@ -5,7 +5,7 @@
     DATA_PAGE_V2,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Available data pages for Parquet file format.
 Note that some of the page types may not be supported.</p>
-</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.DATA_PAGE" class="variant"><a href="#variant.DATA_PAGE" class="anchor">§</a><h3 class="code-header">DATA_PAGE</h3></section><section id="variant.INDEX_PAGE" class="variant"><a href="#variant.INDEX_PAGE" class="anchor">§</a><h3 class="code-header">INDEX_PAGE</h3></section><section id="variant.DICTIONARY_PAGE" class="variant"><a h [...]
+</div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.DATA_PAGE" class="variant"><a href="#variant.DATA_PAGE" class="anchor">§</a><h3 class="code-header">DATA_PAGE</h3></section><section id="variant.INDEX_PAGE" class="variant"><a href="#variant.INDEX_PAGE" class="anchor">§</a><h3 class="code-header">INDEX_PAGE</h3></section><section id="variant.DICTIONARY_PAGE" class="variant"><a 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#242">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%3CPageType%3E-for-PageType" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#984-996">source</a><a href="#impl-TryFrom%3CPageType%3E-for-PageType" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.htm [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/basic/enum.Repetition.html b/parquet/basic/enum.Repetition.html
index 6dae072be8..5dab72681e 100644
--- a/parquet/basic/enum.Repetition.html
+++ b/parquet/basic/enum.Repetition.html
@@ -6,7 +6,7 @@
 </div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.REQUIRED" class="variant"><a href="#variant.REQUIRED" class="anchor">§</a><h3 class="code-header">REQUIRED</h3></section><div class="docblock"><p>Field is required (can not be null) and each record has exactly 1 value.</p>
 </div><section id="variant.OPTIONAL" class="variant"><a href="#variant.OPTIONAL" class="anchor">§</a><h3 class="code-header">OPTIONAL</h3></section><div class="docblock"><p>Field is optional (can be null) and each record has 0 or 1 values.</p>
 </div><section id="variant.REPEATED" class="variant"><a href="#variant.REPEATED" class="anchor">§</a><h3 class="code-header">REPEATED</h3></section><div class="docblock"><p>Field is repeated and can contain 0 or more values.</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Repetition" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#204">source</a><a href="#impl-Clone-for-Repetition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc. [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Repetition" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#204">source</a><a href="#impl-Clone-for-Repetition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc. [...]
 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#242">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%3CFieldRepetitionType%3E-for-Repetition" class="impl"><a class="src rightside" href="../../src/parquet/basic.rs.html#874-890">source</a><a href="#impl-TryFrom%3CFieldRepetitionType%3E-for-Repetition" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/basic/enum.SortOrder.html b/parquet/basic/enum.SortOrder.html
index 1c005ceb18..c7f5bc3d00 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="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::SortOr [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-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 class="t [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-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 class="t [...]
 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#242">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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/column/reader/decoder/constant.REPETITION_LEVELS_BATCH_SIZE.html b/parquet/column/reader/decoder/constant.REPETITION_LEVELS_BATCH_SIZE.html
index cb00f1ee8f..b2768d6a7f 100644
--- a/parquet/column/reader/decoder/constant.REPETITION_LEVELS_BATCH_SIZE.html
+++ b/parquet/column/reader/decoder/constant.REPETITION_LEVELS_BATCH_SIZE.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 `REPETITION_LEVELS_BATCH_SIZE` constant in crate `parquet`."><title>REPETITION_LEVELS_BATCH_SIZE in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regula [...]
\ 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 `REPETITION_LEVELS_BATCH_SIZE` constant in crate `parquet`."><title>REPETITION_LEVELS_BATCH_SIZE in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regula [...]
\ No newline at end of file
diff --git a/parquet/column/reader/decoder/constant.SKIP_BUFFER_SIZE.html b/parquet/column/reader/decoder/constant.SKIP_BUFFER_SIZE.html
index e0a302b298..e9a62a507e 100644
--- a/parquet/column/reader/decoder/constant.SKIP_BUFFER_SIZE.html
+++ b/parquet/column/reader/decoder/constant.SKIP_BUFFER_SIZE.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 `SKIP_BUFFER_SIZE` constant in crate `parquet`."><title>SKIP_BUFFER_SIZE in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.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 `SKIP_BUFFER_SIZE` constant in crate `parquet`."><title>SKIP_BUFFER_SIZE in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.w [...]
\ No newline at end of file
diff --git a/parquet/column/reader/decoder/enum.LevelDecoder.html b/parquet/column/reader/decoder/enum.LevelDecoder.html
index c3b293836c..ca4514dc9c 100644
--- a/parquet/column/reader/decoder/enum.LevelDecoder.html
+++ b/parquet/column/reader/decoder/enum.LevelDecoder.html
@@ -1,7 +1,7 @@
-<!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 `LevelDecoder` enum in crate `parquet`."><title>LevelDecoder in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link  [...]
+<!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 `LevelDecoder` enum in crate `parquet`."><title>LevelDecoder in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link  [...]
     Packed(BitReader, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>),
     Rle(RleDecoder),
-}</code></pre><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Packed" class="variant"><a href="#variant.Packed" class="anchor">§</a><h3 class="code-header">Packed(BitReader, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>)</h3></section><section id="variant.Rle" class="variant"><a href="#variant.Rle" class="anchor">§</a><h3 class="code-header">Rle(R [...]
+}</code></pre><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Packed" class="variant"><a href="#variant.Packed" class="anchor">§</a><h3 class="code-header">Packed(BitReader, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>)</h3></section><section id="variant.Rle" class="variant"><a href="#variant.Rle" class="anchor">§</a><h3 class="code-header">Rle(R [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/parquet/column/reader/decoder/index.html b/parquet/column/reader/decoder/index.html
index 006b7ae0bc..aa963ea95e 100644
--- a/parquet/column/reader/decoder/index.html
+++ b/parquet/column/reader/decoder/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 `decoder` mod in crate `parquet`."><title>parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font [...]
\ 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 `decoder` mod in crate `parquet`."><title>parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font [...]
\ No newline at end of file
diff --git a/parquet/column/reader/decoder/sidebar-items.js b/parquet/column/reader/decoder/sidebar-items.js
index c86b8247f4..a3af91bed5 100644
--- a/parquet/column/reader/decoder/sidebar-items.js
+++ b/parquet/column/reader/decoder/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"constant":["REPETITION_LEVELS_BATCH_SIZE","SKIP_BUFFER_SIZE"],"enum":["LevelDecoder"],"struct":["ColumnValueDecoderImpl","DefinitionLevelDecoderImpl","RepetitionLevelDecoderImpl"],"trait":["ColumnLevelDecoder","ColumnValueDecoder","DefinitionLevelDecoder","LevelsBufferSlice","RepetitionLevelDecoder","ValuesBufferSlice"]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"constant":["REPETITION_LEVELS_BATCH_SIZE","SKIP_BUFFER_SIZE"],"enum":["LevelDecoder"],"struct":["ColumnValueDecoderImpl","DefinitionLevelDecoderImpl","RepetitionLevelDecoderImpl"],"trait":["ColumnLevelDecoder","ColumnValueDecoder","DefinitionLevelDecoder","RepetitionLevelDecoder"]};
\ No newline at end of file
diff --git a/parquet/column/reader/decoder/struct.ColumnValueDecoderImpl.html b/parquet/column/reader/decoder/struct.ColumnValueDecoderImpl.html
index e0966cb02c..e7dc422baf 100644
--- a/parquet/column/reader/decoder/struct.ColumnValueDecoderImpl.html
+++ b/parquet/column/reader/decoder/struct.ColumnValueDecoderImpl.html
@@ -1,21 +1,21 @@
-<!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="An implementation of `ColumnValueDecoder` for `[T::T]`"><title>ColumnValueDecoderImpl in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="p [...]
+<!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="An implementation of `ColumnValueDecoder` for `[T::T]`"><title>ColumnValueDecoderImpl in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="p [...]
     descr: <a class="type" href="../../../schema/types/type.ColumnDescPtr.html" title="type parquet::schema::types::ColumnDescPtr">ColumnDescPtr</a>,
     current_encoding: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="../../../basic/enum.Encoding.html" title="enum parquet::basic::Encoding">Encoding</a>&gt;,
     decoders: <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="enum" href="../../../basic/enum.Encoding.html" title="enum parquet::basic::Encoding">Encoding</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn Decoder&lt;T&gt;&gt;&gt;,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An implementation of <a href="trait.ColumnValueDecoder.html" title="trait parquet::column::reader::decoder::ColumnValueDecoder"><code>ColumnValueDecoder</code></a> for <code>[T::T]</code></p>
-</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.descr" class="structfield section-header"><a href="#structfield.descr" class="anchor field">§</a><code>descr: <a class="type" href="../../../schema/types/type.ColumnDescPtr.html" title="type parquet::schema::types::ColumnDescPtr">ColumnDescPtr</a></code></span><span id="structfield.current_encoding" class="structfield section-header"><a href="#structfield.c [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.descr" class="structfield section-header"><a href="#structfield.descr" class="anchor field">§</a><code>descr: <a class="type" href="../../../schema/types/type.ColumnDescPtr.html" title="type parquet::schema::types::ColumnDescPtr">ColumnDescPtr</a></code></span><span id="structfield.current_encoding" class="structfield section-header"><a href="#structfield.c [...]
     &amp;mut self,
     buf: Bytes,
     num_values: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
     encoding: <a class="enum" href="../../../basic/enum.Encoding.html" title="enum parquet::basic::Encoding">Encoding</a>,
     _is_sorted: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>
-) -&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'>Set the current dictionary page</div></details><details class="toggle method-toggle" open><summary><section id="method.set_data" class="method trait-impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs [...]
+) -&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'>Set the current dictionary page</div></details><details class="toggle method-toggle" open><summary><section id="method.set_data" class="method trait-impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs [...]
     &amp;mut self,
     encoding: <a class="enum" href="../../../basic/enum.Encoding.html" title="enum parquet::basic::Encoding">Encoding</a>,
     data: Bytes,
     num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     num_values: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;
-) -&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'>Set the current data page <a href="trait.ColumnValueDecoder.html#tymethod.set_data">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method trait-impl"><a class="src rig [...]
+) -&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'>Set the current data page <a href="trait.ColumnValueDecoder.html#tymethod.set_data">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read" class="method trait-impl"><a class="src rig [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/parquet/column/reader/decoder/struct.DefinitionLevelDecoderImpl.html b/parquet/column/reader/decoder/struct.DefinitionLevelDecoderImpl.html
index dc884a2f3b..58fc705b91 100644
--- a/parquet/column/reader/decoder/struct.DefinitionLevelDecoderImpl.html
+++ b/parquet/column/reader/decoder/struct.DefinitionLevelDecoderImpl.html
@@ -1,16 +1,13 @@
-<!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="An implementation of `DefinitionLevelDecoder` for `[i16]`"><title>DefinitionLevelDecoderImpl in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link [...]
+<!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="An implementation of `DefinitionLevelDecoder` for `[i16]`"><title>DefinitionLevelDecoderImpl in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link [...]
     decoder: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.LevelDecoder.html" title="enum parquet::column::reader::decoder::LevelDecoder">LevelDecoder</a>&gt;,
     bit_width: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>,
+    max_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An implementation of <a href="trait.DefinitionLevelDecoder.html" title="trait parquet::column::reader::decoder::DefinitionLevelDecoder"><code>DefinitionLevelDecoder</code></a> for <code>[i16]</code></p>
-</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.decoder" class="structfield section-header"><a href="#structfield.decoder" class="anchor field">§</a><code>decoder: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.LevelDecoder.html" title="enum parquet::column::reader::decoder::LevelDecoder">Lev [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.decoder" class="structfield section-header"><a href="#structfield.decoder" class="anchor field">§</a><code>decoder: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.LevelDecoder.html" title="enum parquet::column::reader::decoder::LevelDecoder">Lev [...]
     &amp;mut self,
-    out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>,
-    range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;
-) -&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'>Read definition level data into <code>out[range]</code> returning the number of levels read <a href="trait.DefinitionLevelDecoder.html#tymethod.read_def_levels">Read more</a></div></details><details class="toggle method-toggle" op [...]
-    &amp;mut self,
-    num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
-    max_def_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>
-) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class='docblock'>Skips over <code>num_levels</code> definition levels <a href="trait.DefinitionLevelDecoder.html#tymethod.skip_def_levels">Read mor [...]
+    out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>,
+    num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
+) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class='docblock'>Read up to <code>num_levels</code> definition levels into <code>out</code> <a href="trait.DefinitionLevelDecoder.html#tymethod.rea [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/parquet/column/reader/decoder/struct.RepetitionLevelDecoderImpl.html b/parquet/column/reader/decoder/struct.RepetitionLevelDecoderImpl.html
index d3c3e62c0b..13f86a318a 100644
--- a/parquet/column/reader/decoder/struct.RepetitionLevelDecoderImpl.html
+++ b/parquet/column/reader/decoder/struct.RepetitionLevelDecoderImpl.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="An implementation of `RepetitionLevelDecoder` for `[i16]`"><title>RepetitionLevelDecoderImpl in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link [...]
+<!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="An implementation of `RepetitionLevelDecoder` for `[i16]`"><title>RepetitionLevelDecoderImpl in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link [...]
     decoder: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.LevelDecoder.html" title="enum parquet::column::reader::decoder::LevelDecoder">LevelDecoder</a>&gt;,
     bit_width: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>,
     buffer: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">1024</a>]&gt;,
@@ -6,25 +6,25 @@
     buffer_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     has_partial: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An implementation of <a href="trait.RepetitionLevelDecoder.html" title="trait parquet::column::reader::decoder::RepetitionLevelDecoder"><code>RepetitionLevelDecoder</code></a> for <code>[i16]</code></p>
-</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.decoder" class="structfield section-header"><a href="#structfield.decoder" class="anchor field">§</a><code>decoder: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.LevelDecoder.html" title="enum parquet::column::reader::decoder::LevelDecoder">Lev [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.decoder" class="structfield section-header"><a href="#structfield.decoder" class="anchor field">§</a><code>decoder: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.LevelDecoder.html" title="enum parquet::column::reader::decoder::LevelDecoder">Lev [...]
     &amp;mut self,
     records_to_read: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
 ) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <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>)</h4></section></summary><div class="docblock"><p>Inspects the buffered repetition levels in the range <code>self.buffer_offset..self.buffer_len</code>
 and returns the number of “complete” records along with the corresponding number of values</p>
 <p>A “complete” record is one where the buffer contains a subsequent repetition level of 0</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ColumnLevelDecoder-for-RepetitionLevelDecoderImpl" class="impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#425-433">source</a><a href="#impl-ColumnLevelDecoder-for-Re [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ColumnLevelDecoder-for-RepetitionLevelDecoderImpl" class="impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#407-415">source</a><a href="#impl-ColumnLevelDecoder-for-Re [...]
     &amp;mut self,
-    out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>,
-    range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;,
-    max_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
-) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class='docblock'>Read up to <code>max_records</code> of repetition level data into <code>out[range]</code> returning the number
-of complete records and levels read <a href="trait.RepetitionLevelDecoder.html#tymethod.read_rep_levels">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_rep_levels" class="method trait-impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#472-495">source</a><a href="#method.skip_rep_levels" class="anchor">§</a><h4 class="code-header">fn <a href="trait.RepetitionLevelDecoder.html#tymethod.skip_r [...]
+    out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>,
+    num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+    num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
+) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class='docblock'>Read up to <code>max_records</code> of repetition level data into <code>out</code> returning the number
+of complete records and levels read <a href="trait.RepetitionLevelDecoder.html#tymethod.read_rep_levels">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_rep_levels" class="method trait-impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#452-475">source</a><a href="#method.skip_rep_levels" class="anchor">§</a><h4 class="code-header">fn <a href="trait.RepetitionLevelDecoder.html#tymethod.skip_r [...]
     &amp;mut self,
     num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
 ) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class='docblock'>Skips over up to <code>num_levels</code> repetition levels corresponding to <code>num_records</code> records,
-where a record is delimited by a repetition level of 0 <a href="trait.RepetitionLevelDecoder.html#tymethod.skip_rep_levels">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flush_partial" class="method trait-impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#497-499">source</a><a href="#method.flush_partial" class="anchor">§</a><h4 class="code-header">fn <a href="trait.RepetitionLevelDecoder.html# [...]
+where a record is delimited by a repetition level of 0 <a href="trait.RepetitionLevelDecoder.html#tymethod.skip_rep_levels">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.flush_partial" class="method trait-impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#477-479">source</a><a href="#method.flush_partial" class="anchor">§</a><h4 class="code-header">fn <a href="trait.RepetitionLevelDecoder.html# [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/parquet/column/reader/decoder/trait.ColumnLevelDecoder.html b/parquet/column/reader/decoder/trait.ColumnLevelDecoder.html
index cd545de071..24ac938015 100644
--- a/parquet/column/reader/decoder/trait.ColumnLevelDecoder.html
+++ b/parquet/column/reader/decoder/trait.ColumnLevelDecoder.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="Decodes level data to a `LevelsBufferSlice`"><title>ColumnLevelDecoder in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="fon [...]
-    type <a href="#associatedtype.Slice" class="associatedtype">Slice</a>: <a class="trait" href="trait.LevelsBufferSlice.html" title="trait parquet::column::reader::decoder::LevelsBufferSlice">LevelsBufferSlice</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>;
+<!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="Decodes level data"><title>ColumnLevelDecoder in parquet::column::reader::decoder - 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" cros [...]
+    type <a href="#associatedtype.Buffer" class="associatedtype">Buffer</a>;
 
     // Required method
     fn <a href="#tymethod.set_data" class="fn">set_data</a>(&amp;mut self, encoding: <a class="enum" href="../../../basic/enum.Encoding.html" title="enum parquet::basic::Encoding">Encoding</a>, data: Bytes);
-}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Decodes level data to a <a href="trait.LevelsBufferSlice.html" title="trait parquet::column::reader::decoder::LevelsBufferSlice"><code>LevelsBufferSlice</code></a></p>
-</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Slice" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#66">source</a><h4 class="code-header">type <a href="#associatedtype.Slice" class="associatedtype">Slice</a>: <a class="trait" href="trait.LevelsBufferSlice.html" title="trait  [...]
-</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-ColumnLevelDecoder-for-DefinitionLevelBufferDecoder" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#150-159">source</a><a href="#impl-ColumnLevelDecoder-for-DefinitionLevelBufferDecoder" class="anch [...]
\ No newline at end of file
+}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Decodes level data</p>
+</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Buffer" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#34">source</a><h4 class="code-header">type <a href="#associatedtype.Buffer" class="associatedtype">Buffer</a></h4></section></div><h2 id="required-methods" class="section-hea [...]
+</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-ColumnLevelDecoder-for-DefinitionLevelBufferDecoder" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#131-140">source</a><a href="#impl-ColumnLevelDecoder-for-DefinitionLevelBufferDecoder" class="anch [...]
\ No newline at end of file
diff --git a/parquet/column/reader/decoder/trait.ColumnValueDecoder.html b/parquet/column/reader/decoder/trait.ColumnValueDecoder.html
index 3e2a2894ae..24b2d6c759 100644
--- a/parquet/column/reader/decoder/trait.ColumnValueDecoder.html
+++ b/parquet/column/reader/decoder/trait.ColumnValueDecoder.html
@@ -1,5 +1,5 @@
-<!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="Decodes value data to a `ValuesBufferSlice`"><title>ColumnValueDecoder in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="fon [...]
-    type <a href="#associatedtype.Slice" class="associatedtype">Slice</a>: <a class="trait" href="trait.ValuesBufferSlice.html" title="trait parquet::column::reader::decoder::ValuesBufferSlice">ValuesBufferSlice</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>;
+<!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="Decodes value data"><title>ColumnValueDecoder in parquet::column::reader::decoder - 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" cros [...]
+    type <a href="#associatedtype.Buffer" class="associatedtype">Buffer</a>;
 
     // Required methods
     fn <a href="#tymethod.new" class="fn">new</a>(col: &amp;<a class="type" href="../../../schema/types/type.ColumnDescPtr.html" title="type parquet::schema::types::ColumnDescPtr">ColumnDescPtr</a>) -&gt; Self;
@@ -19,20 +19,20 @@
     ) -&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;;
 <span class="item-spacer"></span>    fn <a href="#tymethod.read" class="fn">read</a>(
         &amp;mut self,
-        out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnValueDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnValueDecoder::Slice">Slice</a>,
-        range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;
+        out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnValueDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnValueDecoder::Buffer">Buffer</a>,
+        num_values: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
     ) -&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;;
 <span class="item-spacer"></span>    fn <a href="#tymethod.skip_values" class="fn">skip_values</a>(&amp;mut self, num_values: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&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;;
-}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Decodes value data to a <a href="trait.ValuesBufferSlice.html" title="trait parquet::column::reader::decoder::ValuesBufferSlice"><code>ValuesBufferSlice</code></a></p>
-</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Slice" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#126">source</a><h4 class="code-header">type <a href="#associatedtype.Slice" class="associatedtype">Slice</a>: <a class="trait" href="trait.ValuesBufferSlice.html" title="trait [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.set_dict" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#132-138">source</a><h4 class="code-header">fn <a href="#tymethod.set_dict" class="fn">set_dict</a>(
+}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Decodes value data</p>
+</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.Buffer" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#92">source</a><h4 class="code-header">type <a href="#associatedtype.Buffer" class="associatedtype">Buffer</a></h4></section></div><h2 id="required-methods" class="section-hea [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.set_dict" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#98-104">source</a><h4 class="code-header">fn <a href="#tymethod.set_dict" class="fn">set_dict</a>(
     &amp;mut self,
     buf: Bytes,
     num_values: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
     encoding: <a class="enum" href="../../../basic/enum.Encoding.html" title="enum parquet::basic::Encoding">Encoding</a>,
     is_sorted: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>
 ) -&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"><p>Set the current dictionary page</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.set_data" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#151-157">source</a><h4 class="code-header">fn <a href="#tymethod.set_data" class="fn">set_data</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.set_data" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#117-123">source</a><h4 class="code-header">fn <a href="#tymethod.set_data" class="fn">set_data</a>(
     &amp;mut self,
     encoding: <a class="enum" href="../../../basic/enum.Encoding.html" title="enum parquet::basic::Encoding">Encoding</a>,
     data: Bytes,
@@ -49,11 +49,9 @@
 run may be zero-padded. As such if <code>num_values</code> is not provided (i.e. <code>None</code>),
 subsequent calls to <code>ColumnValueDecoder::read</code> may yield more values than
 non-null definition levels within the page</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.read" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#168">source</a><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&amp;mut self, out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnValueDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnValueDecoder::Slice">Slice</a>, range: [...]
-<p><code>range</code> is provided by the caller to allow for types such as default-initialized <code>[T]</code>
-that only track capacity and not length</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.read" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#131">source</a><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&amp;mut self, out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnValueDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnValueDecoder::Buffer">Buffer</a>, num [...]
 <h5 id="panics"><a href="#panics">Panics</a></h5>
 <p>Implementations may panic if <code>range</code> overlaps with already written data</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.skip_values" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#173">source</a><h4 class="code-header">fn <a href="#tymethod.skip_values" class="fn">skip_values</a>(&amp;mut self, num_values: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../../errors/type.Result.html" t [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.skip_values" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#136">source</a><h4 class="code-header">fn <a href="#tymethod.skip_values" class="fn">skip_values</a>(&amp;mut self, num_values: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../../errors/type.Result.html" t [...]
 <p>Returns the number of values skipped</p>
-</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section  [...]
\ No newline at end of file
+</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section  [...]
\ No newline at end of file
diff --git a/parquet/column/reader/decoder/trait.DefinitionLevelDecoder.html b/parquet/column/reader/decoder/trait.DefinitionLevelDecoder.html
index 2447dff2f4..2a2a93f211 100644
--- a/parquet/column/reader/decoder/trait.DefinitionLevelDecoder.html
+++ b/parquet/column/reader/decoder/trait.DefinitionLevelDecoder.html
@@ -1,28 +1,19 @@
-<!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 `DefinitionLevelDecoder` trait in crate `parquet`."><title>DefinitionLevelDecoder in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5 [...]
+<!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 `DefinitionLevelDecoder` trait in crate `parquet`."><title>DefinitionLevelDecoder in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5 [...]
     // Required methods
     fn <a href="#tymethod.read_def_levels" class="fn">read_def_levels</a>(
         &amp;mut self,
-        out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>,
-        range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;
-    ) -&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;;
-<span class="item-spacer"></span>    fn <a href="#tymethod.skip_def_levels" class="fn">skip_def_levels</a>(
-        &amp;mut self,
-        num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
-        max_def_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>
+        out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>,
+        num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
     ) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;;
-}</code></pre><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.read_def_levels" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#116">source</a><h4 class="code-header">fn <a href="#tymethod.read_def_levels" class="fn">read_def_levels</a>(
+<span class="item-spacer"></span>    fn <a href="#tymethod.skip_def_levels" class="fn">skip_def_levels</a>(&amp;mut self, num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&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>, <a class="primitive" href="https://doc.rust-lang [...]
+}</code></pre><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.read_def_levels" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#78-82">source</a><h4 class="code-header">fn <a href="#tymethod.read_def_levels" class="fn">read_def_levels</a>(
     &amp;mut self,
-    out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>,
-    range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;
-) -&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"><p>Read definition level data into <code>out[range]</code> returning the number of levels read</p>
-<p><code>range</code> is provided by the caller to allow for types such as default-initialized <code>[T]</code>
-that only track capacity and not length</p>
+    out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>,
+    num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
+) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class="docblock"><p>Read up to <code>num_levels</code> definition levels into <code>out</code></p>
+<p>Returns the number of values skipped, and the number of levels skipped</p>
 <h5 id="panics"><a href="#panics">Panics</a></h5>
 <p>Implementations may panic if <code>range</code> overlaps with already written data</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.skip_def_levels" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#121">source</a><h4 class="code-header">fn <a href="#tymethod.skip_def_levels" class="fn">skip_def_levels</a>(
-    &amp;mut self,
-    num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
-    max_def_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>
-) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class="docblock"><p>Skips over <code>num_levels</code> definition levels</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.skip_def_levels" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#87">source</a><h4 class="code-header">fn <a href="#tymethod.skip_def_levels" class="fn">skip_def_levels</a>(&amp;mut self, num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../../errors/type.Res [...]
 <p>Returns the number of values skipped, and the number of levels skipped</p>
-</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-DefinitionLevelDecoder-for-DefinitionLevelBufferDecoder" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#161-203">source</a><a href="#impl-DefinitionLevelDecoder-for-DefinitionLevelBufferDecoder" class="anchor">§</a><h3 class="code-header">impl <a clas [...]
\ No newline at end of file
+</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-DefinitionLevelDecoder-for-DefinitionLevelBufferDecoder" class="impl"><a class="src rightside" href="../../../../src/parquet/arrow/record_reader/definition_levels.rs.html#142-188">source</a><a href="#impl-DefinitionLevelDecoder-for-DefinitionLevelBufferDecoder" class="anchor">§</a><h3 class="code-header">impl <a clas [...]
\ No newline at end of file
diff --git a/parquet/column/reader/decoder/trait.LevelsBufferSlice.html b/parquet/column/reader/decoder/trait.LevelsBufferSlice.html
deleted file mode 100644
index db04e59220..0000000000
--- a/parquet/column/reader/decoder/trait.LevelsBufferSlice.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!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 slice of levels buffer data that is written to by a `ColumnLevelDecoder`"><title>LevelsBufferSlice in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff [...]
-    // Required methods
-    fn <a href="#tymethod.capacity" class="fn">capacity</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>;
-<span class="item-spacer"></span>    fn <a href="#tymethod.count_nulls" class="fn">count_nulls</a>(&amp;self, range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;, max_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>) -&gt; <a class="primitiv [...]
-}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A slice of levels buffer data that is written to by a <a href="trait.ColumnLevelDecoder.html" title="trait parquet::column::reader::decoder::ColumnLevelDecoder"><code>ColumnLevelDecoder</code></a></p>
-</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.capacity" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#36">source</a><h4 class="code-header">fn <a href="#tymethod.capacity" class="fn">capacity</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rus [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.count_nulls" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#39">source</a><h4 class="code-header">fn <a href="#tymethod.count_nulls" class="fn">count_nulls</a>(&amp;self, range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href=" [...]
-</div></details></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-LevelsBufferSlice-for-%5Bi16%5D" class="impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#42-50">source</a><a href="#impl-LevelsBufferSlice-for-%5Bi16%5D" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="tra [...]
\ No newline at end of file
diff --git a/parquet/column/reader/decoder/trait.RepetitionLevelDecoder.html b/parquet/column/reader/decoder/trait.RepetitionLevelDecoder.html
index 7ccecaa201..c6de14f050 100644
--- a/parquet/column/reader/decoder/trait.RepetitionLevelDecoder.html
+++ b/parquet/column/reader/decoder/trait.RepetitionLevelDecoder.html
@@ -1,10 +1,10 @@
-<!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 `RepetitionLevelDecoder` trait in crate `parquet`."><title>RepetitionLevelDecoder in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5 [...]
+<!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 `RepetitionLevelDecoder` trait in crate `parquet`."><title>RepetitionLevelDecoder in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5 [...]
     // Required methods
     fn <a href="#tymethod.read_rep_levels" class="fn">read_rep_levels</a>(
         &amp;mut self,
-        out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>,
-        range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;,
-        max_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
+        out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>,
+        num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+        num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
     ) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;;
 <span class="item-spacer"></span>    fn <a href="#tymethod.skip_rep_levels" class="fn">skip_rep_levels</a>(
         &amp;mut self,
@@ -12,20 +12,18 @@
         num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
     ) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;;
 <span class="item-spacer"></span>    fn <a href="#tymethod.flush_partial" class="fn">flush_partial</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>;
-}</code></pre><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.read_rep_levels" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#85-90">source</a><h4 class="code-header">fn <a href="#tymethod.read_rep_levels" class="fn">read_rep_levels</a>(
+}</code></pre><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.read_rep_levels" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#50-55">source</a><h4 class="code-header">fn <a href="#tymethod.read_rep_levels" class="fn">read_rep_levels</a>(
     &amp;mut self,
-    out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>,
-    range: <a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;,
-    max_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
-) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class="docblock"><p>Read up to <code>max_records</code> of repetition level data into <code>out[range]</code> returning the number
+    out: &amp;mut Self::<a class="associatedtype" href="trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>,
+    num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
+    num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
+) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section></summary><div class="docblock"><p>Read up to <code>max_records</code> of repetition level data into <code>out</code> returning the number
 of complete records and levels read</p>
-<p><code>range</code> is provided by the caller to allow for types such as default-initialized <code>[T]</code>
-that only track capacity and not length</p>
 <p>A record only ends when the data contains a subsequent repetition level of 0,
 it is therefore left to the caller to delimit the final record in a column</p>
 <h5 id="panics"><a href="#panics">Panics</a></h5>
 <p>Implementations may panic if <code>range</code> overlaps with already written data</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.skip_rep_levels" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#99">source</a><h4 class="code-header">fn <a href="#tymethod.skip_rep_levels" class="fn">skip_rep_levels</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.skip_rep_levels" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#64">source</a><h4 class="code-header">fn <a href="#tymethod.skip_rep_levels" class="fn">skip_rep_levels</a>(
     &amp;mut self,
     num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     num_levels: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
@@ -34,5 +32,5 @@ where a record is delimited by a repetition level of 0</p>
 <p>Returns the number of records skipped, and the number of levels skipped</p>
 <p>A record only ends when the data contains a subsequent repetition level of 0,
 it is therefore left to the caller to delimit the final record in a column</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.flush_partial" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#102">source</a><h4 class="code-header">fn <a href="#tymethod.flush_partial" class="fn">flush_partial</a>(&amp;mut 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>Flush any partial [...]
-</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-RepetitionLevelDecoder-for-RepetitionLevelDecoderImpl" class="impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#435-500">source</a><a href="#impl-RepetitionLevelDecoder-for-RepetitionLevelDecoderImpl" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trai [...]
\ No newline at end of file
+</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.flush_partial" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#67">source</a><h4 class="code-header">fn <a href="#tymethod.flush_partial" class="fn">flush_partial</a>(&amp;mut 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>Flush any partiall [...]
+</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-RepetitionLevelDecoder-for-RepetitionLevelDecoderImpl" class="impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#417-480">source</a><a href="#impl-RepetitionLevelDecoder-for-RepetitionLevelDecoderImpl" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trai [...]
\ No newline at end of file
diff --git a/parquet/column/reader/decoder/trait.ValuesBufferSlice.html b/parquet/column/reader/decoder/trait.ValuesBufferSlice.html
deleted file mode 100644
index a234635744..0000000000
--- a/parquet/column/reader/decoder/trait.ValuesBufferSlice.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!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 slice of values buffer data that is written to by a `ColumnValueDecoder`"><title>ValuesBufferSlice in parquet::column::reader::decoder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff [...]
-    // Required method
-    fn <a href="#tymethod.capacity" class="fn">capacity</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>;
-}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A slice of values buffer data that is written to by a <a href="trait.ColumnValueDecoder.html" title="trait parquet::column::reader::decoder::ColumnValueDecoder"><code>ColumnValueDecoder</code></a></p>
-</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.capacity" class="method"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#55">source</a><h4 class="code-header">fn <a href="#tymethod.capacity" class="fn">capacity</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rus [...]
-</div></details></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-ValuesBufferSlice-for-%5BT%5D" class="impl"><a class="src rightside" href="../../../../src/parquet/column/reader/decoder.rs.html#58-62">source</a><a href="#impl-ValuesBufferSlice-for-%5BT%5D" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href [...]
\ No newline at end of file
diff --git a/parquet/column/reader/fn.parse_v1_level.html b/parquet/column/reader/fn.parse_v1_level.html
index 2be990e498..cb39b08d07 100644
--- a/parquet/column/reader/fn.parse_v1_level.html
+++ b/parquet/column/reader/fn.parse_v1_level.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 `parse_v1_level` fn in crate `parquet`."><title>parse_v1_level in parquet::column::reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="prelo [...]
+<!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 `parse_v1_level` fn in crate `parquet`."><title>parse_v1_level in parquet::column::reader - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="prelo [...]
     max_level: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i16.html">i16</a>,
     num_buffered_values: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
     encoding: <a class="enum" href="../../basic/enum.Encoding.html" title="enum parquet::basic::Encoding">Encoding</a>,
diff --git a/parquet/column/reader/index.html b/parquet/column/reader/index.html
index 8c9215894c..435ae1e0cc 100644
--- a/parquet/column/reader/index.html
+++ b/parquet/column/reader/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Contains column reader API."><title>parquet::column::reader - 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="../../../st [...]
+<!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="Contains column reader API."><title>parquet::column::reader - 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="../../../st [...]
 </div></details><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="decoder/index.html" title="mod parquet::column::reader::decoder">decoder</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li></ul><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.GenericColumnReader.html" title [...]
 column reader will read from pages in <code>col_page_reader</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.get_typed_column_reader.html" title="fn parquet::column::reader::get_typed_column_reader">get_typed_column_reader</a></div><div class="desc docblock-short">Gets a typed column reader for the specific type <code>T</code>, by “up-casting” <code>col_reader</code> of
 non-generic type to a generic column reader type <code>ColumnReaderImpl</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.parse_v1_level.html" title="fn parquet::column::reader::parse_v1_level">parse_v1_level</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li></ul><h2 id="types" class="section-header"><a href="#types">Type Aliases</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.ColumnReaderImpl.html" title="type parquet [...]
\ No newline at end of file
diff --git a/parquet/column/reader/struct.GenericColumnReader.html b/parquet/column/reader/struct.GenericColumnReader.html
index 04f7769ef6..63ada87ccb 100644
--- a/parquet/column/reader/struct.GenericColumnReader.html
+++ b/parquet/column/reader/struct.GenericColumnReader.html
@@ -22,7 +22,7 @@ so far.</p>
 </div><span id="structfield.values_decoder" class="structfield section-header"><a href="#structfield.values_decoder" class="anchor field">§</a><code>values_decoder: V</code></span><div class="docblock"><p>The decoder for the values</p>
 </div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-GenericColumnReader%3CRepetitionLevelDecoderImpl,+DefinitionLevelDecoderImpl,+V%3E" class="impl"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#131-153">source</a><a href="#impl-GenericColumnReader%3CRepetitionLevelDecoderImpl,+Definitio [...]
     V: <a class="trait" href="decoder/trait.ColumnValueDecoder.html" title="trait parquet::column::reader::decoder::ColumnValueDecoder">ColumnValueDecoder</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#136-152">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(descr: <a class="type [...]
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-GenericColumnReader%3CR,+D,+V%3E" class="impl"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#155-591">source</a><a href="#impl-GenericColumnReader%3CR,+D,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R, D, V&gt; <a class="struct" href="struct.GenericColumnReader.html" title="struct parquet::column::reader::GenericColumnReader">GenericColumnR [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-GenericColumnReader%3CR,+D,+V%3E" class="impl"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#155-566">source</a><a href="#impl-GenericColumnReader%3CR,+D,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R, D, V&gt; <a class="struct" href="struct.GenericColumnReader.html" title="struct parquet::column::reader::GenericColumnReader">GenericColumnR [...]
     R: <a class="trait" href="decoder/trait.RepetitionLevelDecoder.html" title="trait parquet::column::reader::decoder::RepetitionLevelDecoder">RepetitionLevelDecoder</a>,
     D: <a class="trait" href="decoder/trait.DefinitionLevelDecoder.html" title="trait parquet::column::reader::decoder::DefinitionLevelDecoder">DefinitionLevelDecoder</a>,
     V: <a class="trait" href="decoder/trait.ColumnValueDecoder.html" title="trait parquet::column::reader::decoder::ColumnValueDecoder">ColumnValueDecoder</a>,</div></h3></section></summary><div class="impl-items"><section id="method.new_with_decoders" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#161-178">source</a><h4 class="code-header">pub(crate) fn <a href="#method.new_with_decoders" class="fn">new_with_decoders</a>(
@@ -34,9 +34,9 @@ so far.</p>
 ) -&gt; Self</h4></section><details class="toggle method-toggle" open><summary><section id="method.read_batch" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#193-203">source</a><h4 class="code-header">pub fn <a href="#method.read_batch" class="fn">read_batch</a>(
     &amp;mut self,
     batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
-    def_levels: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut D::<a class="associatedtype" href="decoder/trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>&gt;,
-    rep_levels: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut R::<a class="associatedtype" href="decoder/trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>&gt;,
-    values: &amp;mut V::<a class="associatedtype" href="decoder/trait.ColumnValueDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnValueDecoder::Slice">Slice</a>
+    def_levels: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut D::<a class="associatedtype" href="decoder/trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>&gt;,
+    rep_levels: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut R::<a class="associatedtype" href="decoder/trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>&gt;,
+    values: &amp;mut V::<a class="associatedtype" href="decoder/trait.ColumnValueDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnValueDecoder::Buffer">Buffer</a>
 ) -&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>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)&gt;</h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: Use read_records</span></div></span></summary><div class="docblock [...]
 actual number of non-null values read, followed by the corresponding number of levels,
 i.e, the total number of values including nulls, empty lists, etc…</p>
@@ -46,12 +46,12 @@ populated with the number of levels read, with an error returned if it is <code>
 populated with the number of levels read, with an error returned if it is <code>None</code>.</p>
 <p><code>values</code> will be contiguously populated with the non-null values. Note that if the column
 is not required, this may be less than either <code>batch_size</code> or the number of levels read</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read_records" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#219-312">source</a><h4 class="code-header">pub fn <a href="#method.read_records" class="fn">read_records</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read_records" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#219-289">source</a><h4 class="code-header">pub fn <a href="#method.read_records" class="fn">read_records</a>(
     &amp;mut self,
     max_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
-    def_levels: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut D::<a class="associatedtype" href="decoder/trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>&gt;,
-    rep_levels: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut R::<a class="associatedtype" href="decoder/trait.ColumnLevelDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Slice">Slice</a>&gt;,
-    values: &amp;mut V::<a class="associatedtype" href="decoder/trait.ColumnValueDecoder.html#associatedtype.Slice" title="type parquet::column::reader::decoder::ColumnValueDecoder::Slice">Slice</a>
+    def_levels: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut D::<a class="associatedtype" href="decoder/trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>&gt;,
+    rep_levels: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;mut R::<a class="associatedtype" href="decoder/trait.ColumnLevelDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnLevelDecoder::Buffer">Buffer</a>&gt;,
+    values: &amp;mut V::<a class="associatedtype" href="decoder/trait.ColumnValueDecoder.html#associatedtype.Buffer" title="type parquet::column::reader::decoder::ColumnValueDecoder::Buffer">Buffer</a>
 ) -&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>, <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>)&gt;</h4></section></summary><div class="docblock"><p>Read up to <code>max_records</co [...]
 records, non-null values and levels decoded. All levels for a given record
 will be read, i.e. the next repetition level, if any, will be 0</p>
@@ -63,14 +63,14 @@ and levels decoded will both be equal, otherwise <code>rep_levels</code> will be
 the number of levels read, with an error returned if it is <code>None</code>.</p>
 <p><code>values</code> will be contiguously populated with the non-null values. Note that if the column
 is not required, this may be less than either <code>max_records</code> or the number of levels read</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.skip_records" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#319-416">source</a><h4 class="code-header">pub fn <a href="#method.skip_records" class="fn">skip_records</a>(&amp;mut self, num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../errors/type.Result.html" title=" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.skip_records" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#296-391">source</a><h4 class="code-header">pub fn <a href="#method.skip_records" class="fn">skip_records</a>(&amp;mut self, num_records: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="type" href="../../errors/type.Result.html" title=" [...]
 <h5 id="returns"><a href="#returns">Returns</a></h5>
 <p>Returns the number of records skipped</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read_dictionary_page" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#420-434">source</a><h4 class="code-header">fn <a href="#method.read_dictionary_page" class="fn">read_dictionary_page</a>(&amp;mut self) -&gt; <a class="type" href="../../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lan [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read_dictionary_page" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#395-409">source</a><h4 class="code-header">fn <a href="#method.read_dictionary_page" class="fn">read_dictionary_page</a>(&amp;mut self) -&gt; <a class="type" href="../../errors/type.Result.html" title="type parquet::errors::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lan [...]
 this will return an error.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read_new_page" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#438-572">source</a><h4 class="code-header">fn <a href="#method.read_new_page" class="fn">read_new_page</a>(&amp;mut self) -&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/pri [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read_new_page" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#413-547">source</a><h4 class="code-header">fn <a href="#method.read_new_page" class="fn">read_new_page</a>(&amp;mut self) -&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/pri [...]
 Returns false if there’s no page left.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.has_next" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#578-590">source</a><h4 class="code-header">pub(crate) fn <a href="#method.has_next" class="fn">has_next</a>(&amp;mut self) -&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/primiti [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.has_next" class="method"><a class="src rightside" href="../../../src/parquet/column/reader.rs.html#553-565">source</a><h4 class="code-header">pub(crate) fn <a href="#method.has_next" class="fn">has_next</a>(&amp;mut self) -&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/primiti [...]
 If the current page is fully decoded, this will load the next page
 (if it exists) into the buffer</p>
 </div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-GenericColumnReader%3CR,+D,+V%3E" class="impl"><a href="#impl-RefUnwindSafe-for-GenericColumnReader%3CR,+D,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R, D, V&gt; !<a class="trait" href="https://doc.rust-lang.org/nig [...]
diff --git a/parquet/column/writer/index.html b/parquet/column/writer/index.html
index 2639dfa592..df04d72d2f 100644
--- a/parquet/column/writer/index.html
+++ b/parquet/column/writer/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Contains column writer API."><title>parquet::column::writer - 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="../../../st [...]
+<!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="Contains column writer API."><title>parquet::column::writer - 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="../../../st [...]
 </div></details><h2 id="modules" class="section-header"><a href="#modules">Modules</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="encoder/index.html" title="mod parquet::column::writer::encoder">encoder</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li></ul><h2 id="macros" class="section-header"><a href="#macros">Macros</a></h2><ul class="item-table"><li><div class="item-name"><a class="macro" href="macro.downcast_writer.html" title="macro p [...]
 supports dictionary encoding.</div></li></ul><h2 id="functions" class="section-header"><a href="#functions">Functions</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.compare_greater.html" title="fn parquet::column::writer::compare_greater">compare_greater</a><span title="Restricted Visibility">&nbsp;🔒</span> </div><div class="desc docblock-short">Evaluate <code>a &gt; b</code> according to underlying logical type.</div></li><li><div class="item-name"><a c [...]
 non-generic type to a generic column writer type <code>ColumnWriterImpl</code>.</div></li><li><div class="item-name"><a class="fn" href="fn.get_typed_column_writer_mut.html" title="fn parquet::column::writer::get_typed_column_writer_mut">get_typed_column_writer_mut</a></div><div class="desc docblock-short">Similar to <code>get_typed_column_writer</code> but returns a reference.</div></li><li><div class="item-name"><a class="fn" href="fn.get_typed_column_writer_ref.html" title="fn parquet [...]
diff --git a/parquet/data_type/struct.ByteArray.html b/parquet/data_type/struct.ByteArray.html
index b08361fb2d..86eb051a21 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>,</div></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="t [...]
     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,18 +16,18 @@ 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-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#242">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 [...]
+) -&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#242">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#242">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-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#242">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-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/ [...]
-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-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#1158">source</a></span><a href="#method.gt-2" class="anchor">§</a><h4 class="code-header" [...]
-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-PartialOrd%3CFixedLenByteArray%3E-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#299-303">source</a><a href="#impl-PartialOrd%3CFixedLenByteArray%3E-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="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-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#242">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/ [...]
 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#1158">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-PartialOrd-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#122-138">source</a><a href="#impl-PartialOrd-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core [...]
+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-PartialOrd%3CFixedLenByteArray%3E-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#299-303">source</a><a href="#impl-PartialOrd%3CFixedLenByteArray%3E-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="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-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#1158">source</a></span><a href="#method.gt-1" class="anchor">§</a><h4 class="code-header" [...]
+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-PartialOrd-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#122-138">source</a><a href="#impl-PartialOrd-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core [...]
+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-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#1158">source</a></span><a href="#method.gt-2" class="anchor">§</a><h4 class="code-header" [...]
 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-SliceAsBytes-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#532">source</a><a href="#impl-SliceAsBytes-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SliceAsBytes.html" title="trait  [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
diff --git a/parquet/data_type/struct.FixedLenByteArray.html b/parquet/data_type/struct.FixedLenByteArray.html
index ecb02ca781..0d54e1515b 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>,</div></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>,
@@ -30,10 +30,10 @@ sufficient, and should not be overridden without very good reason.</div></detail
 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#242">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/ [...]
 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-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#1158">source</a></span><a href="#method.gt-1" class="anchor">§</a><h4 class="code-header" [...]
-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-PartialOrd%3CFixedLenByteArray%3E-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#299-303">source</a><a href="#impl-PartialOrd%3CFixedLenByteArray%3E-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="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#1158">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-PartialOrd-for-FixedLenByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#293-297">source</a><a href="#impl-PartialOrd-for-FixedLenByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang. [...]
+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-PartialOrd%3CFixedLenByteArray%3E-for-ByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#299-303">source</a><a href="#impl-PartialOrd%3CFixedLenByteArray%3E-for-ByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="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-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#1158">source</a></span><a href="#method.gt-2" class="anchor">§</a><h4 class="code-header" [...]
+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-PartialOrd-for-FixedLenByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#293-297">source</a><a href="#impl-PartialOrd-for-FixedLenByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang. [...]
+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#1158">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-SliceAsBytes-for-FixedLenByteArray" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#533">source</a><a href="#impl-SliceAsBytes-for-FixedLenByteArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.SliceAsBytes.htm [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
diff --git a/parquet/data_type/struct.Int96.html b/parquet/data_type/struct.Int96.html
index 63d245223b..55aa03f942 100644
--- a/parquet/data_type/struct.Int96.html
+++ b/parquet/data_type/struct.Int96.html
@@ -9,7 +9,7 @@ The type only takes 12 bytes, without extra padding.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.to_nanos" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#68-73">source</a><h4 class="code-header">pub fn <a href="#method.to_nanos" class="fn">to_nanos</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></h4></section></summary><div class="docblock"><p>Converts this INT96 into an i64 representing the numbe [...]
 <p>Will wrap around on overflow</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.to_seconds_and_nanos" class="method"><a class="src rightside" href="../../src/parquet/data_type.rs.html#76-84">source</a><h4 class="code-header">pub fn <a href="#method.to_seconds_and_nanos" class="fn">to_seconds_and_nanos</a>(&amp;self) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/ [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsBytes-for-Int96" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#541-545">source</a><a href="#impl-AsBytes-for-Int96" class="anchor">§</a><h3 class="code-header">impl <a clas [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsBytes-for-Int96" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#541-545">source</a><a href="#impl-AsBytes-for-Int96" class="anchor">§</a><h3 class="code-header">impl <a clas [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ParquetValueType-for-Int96" class="impl"><a class="src rightside" href="../../src/parquet/data_type.rs.html#803-888">source</a><a href="#impl-ParquetValueType-for-Int96" class="anchor">§</a><h3 class="code-header">impl <a class="trait" hr [...]
     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>,
diff --git a/parquet/errors/enum.ParquetError.html b/parquet/errors/enum.ParquetError.html
index ee6170a0d9..3917184b2a 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="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="https:// [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-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="https:// [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static,</div></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://doc [...]
 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 8be52b203d..8c1fa6d468 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="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-SerializedFileReade [...]
 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>,</div></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::m [...]
     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>,</div></h3></section></div><h2 id="blanket-implementations" class="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"><a clas [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/file/statistics/enum.Statistics.html b/parquet/file/statistics/enum.Statistics.html
index 530b812705..c9618b0916 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="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-header">i [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-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-header">i [...]
 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#242">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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/file/writer/index.html b/parquet/file/writer/index.html
index 83fddb6516..71a4d25507 100644
--- a/parquet/file/writer/index.html
+++ b/parquet/file/writer/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Contains file writer API, and provides methods to write row groups and columns by using row group writers and column writers respectively."><title>parquet::file::writer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regu [...]
+<!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="Contains file writer API, and provides methods to write row groups and columns by using row group writers and column writers respectively."><title>parquet::file::writer - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regu [...]
 using row group writers and column writers respectively.</p>
 </div></details><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.SerializedColumnWriter.html" title="struct parquet::file::writer::SerializedColumnWriter">SerializedColumnWriter</a></div><div class="desc docblock-short">A wrapper around a <a href="../../column/writer/enum.ColumnWriter.html" title="enum parquet::column::writer::ColumnWriter"><code>ColumnWriter</code></a> that invokes [...]
 Provides methods to write row groups sequentially.</div></li><li><div class="item-name"><a class="struct" href="struct.SerializedPageWriter.html" title="struct parquet::file::writer::SerializedPageWriter">SerializedPageWriter</a></div><div class="desc docblock-short">A serialized implementation for Parquet <a href="../../column/page/trait.PageWriter.html" title="trait parquet::column::page::PageWriter"><code>PageWriter</code></a>.
diff --git a/parquet/format/enum.LogicalType.html b/parquet/format/enum.LogicalType.html
index 38aff40d51..d52c1c7b9d 100644
--- a/parquet/format/enum.LogicalType.html
+++ b/parquet/format/enum.LogicalType.html
@@ -13,7 +13,7 @@
     BSON(<a class="struct" href="struct.BsonType.html" title="struct parquet::format::BsonType">BsonType</a>),
     UUID(<a class="struct" href="struct.UUIDType.html" title="struct parquet::format::UUIDType">UUIDType</a>),
     FLOAT16(<a class="struct" href="struct.Float16Type.html" title="struct parquet::format::Float16Type">Float16Type</a>),
-</details>}</code></pre><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.STRING" class="variant"><a href="#variant.STRING" class="anchor">§</a><h3 class="code-header">STRING(<a class="struct" href="struct.StringType.html" title="struct parquet::format::StringType">StringType</a>)</h3></section><section id="variant.MAP" class="variant"><a href="#variant.MAP" class="anchor">§</a><h3 class="code [...]
+</details>}</code></pre><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.STRING" class="variant"><a href="#variant.STRING" class="anchor">§</a><h3 class="code-header">STRING(<a class="struct" href="struct.StringType.html" title="struct parquet::format::StringType">StringType</a>)</h3></section><section id="variant.MAP" class="variant"><a href="#variant.MAP" class="anchor">§</a><h3 class="code [...]
     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>,</div></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></d [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></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="si [...]
diff --git a/parquet/format/struct.BoundaryOrder.html b/parquet/format/struct.BoundaryOrder.html
index 769287566f..a632e0131a 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 section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield 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="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><de [...]
+</div></details><h2 id="fields" class="fields section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield 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="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><de [...]
     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>,</div></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></d [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></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="si [...]
diff --git a/parquet/format/struct.CompressionCodec.html b/parquet/format/struct.CompressionCodec.html
index 4d02660ce6..dc538d48ef 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 section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield 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="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><de [...]
+</div></details><h2 id="fields" class="fields section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield 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="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><de [...]
     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>,</div></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></d [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></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="si [...]
diff --git a/parquet/format/struct.ConvertedType.html b/parquet/format/struct.ConvertedType.html
index 67dd8f5007..d4e2c21094 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="section-header">Trait  [...]
+</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="section-header">Trait  [...]
     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>,</div></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></d [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></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="si [...]
diff --git a/parquet/format/struct.Encoding.html b/parquet/format/struct.Encoding.html
index 250ed7beb4..7346b2a775 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="section-header">Trait  [...]
+</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="section-header">Trait  [...]
     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>,</div></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></d [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></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="si [...]
diff --git a/parquet/format/struct.FieldRepetitionType.html b/parquet/format/struct.FieldRepetitionType.html
index f9ae0eefb2..9831da3968 100644
--- a/parquet/format/struct.FieldRepetitionType.html
+++ b/parquet/format/struct.FieldRepetitionType.html
@@ -2,7 +2,7 @@
 </div></details><h2 id="fields" class="fields section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield 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="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><de [...]
 </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="section-header">Trait  [...]
+</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="section-header">Trait  [...]
     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>,</div></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></d [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></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="si [...]
diff --git a/parquet/format/struct.PageType.html b/parquet/format/struct.PageType.html
index f6dbf0aaff..867b941ac0 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>,</div></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></d [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></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="si [...]
diff --git a/parquet/format/struct.Type.html b/parquet/format/struct.Type.html
index e409f7e9d8..1c37264b6f 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 section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield 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="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><de [...]
+</div></details><h2 id="fields" class="fields section-header">Tuple Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.0" class="structfield 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="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><de [...]
     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>,</div></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></d [...]
     Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></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="si [...]
diff --git a/parquet/record/api/enum.Field.html b/parquet/record/api/enum.Field.html
index de78f7e6b4..dcc75f50f8 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="section-header [...]
+</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="section-header [...]
 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#242">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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/record/api/struct.Row.html b/parquet/record/api/struct.Row.html
index edc27af396..64a168a2ce 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">"column index: {}, column name: {}, column value: {}"</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="section-header"> [...]
+</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="section-header"> [...]
 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#242">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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
diff --git a/parquet/record/enum.Field.html b/parquet/record/enum.Field.html
index 42cba2fa4f..4efaf18c25 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="section-header">T [...]
+</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="section-header">T [...]
 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#242">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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/parquet/record/struct.Row.html b/parquet/record/struct.Row.html
index 6939688d0f..b4b89aa400 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">"column index: {}, column name: {}, column value: {}"</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="section-header">Tra [...]
+</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="section-header">Tra [...]
 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#242">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>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
diff --git a/parquet/record/triplet/index.html b/parquet/record/triplet/index.html
index a98f373843..e841fb2ce3 100644
--- a/parquet/record/triplet/index.html
+++ b/parquet/record/triplet/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `triplet` mod in crate `parquet`."><title>parquet::record::triplet - 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="fon [...]
+<!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 `triplet` mod in crate `parquet`."><title>parquet::record::triplet - 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="fon [...]
 $func is a function of a typed triplet iterator and $token is a either {<code>ref</code>} or
 {<code>ref</code>, <code>mut</code>}</div></li></ul><h2 id="structs" class="section-header"><a href="#structs">Structs</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.TypedTripletIter.html" title="struct parquet::record::triplet::TypedTripletIter">TypedTripletIter</a></div><div class="desc docblock-short">Internal typed triplet iterator as a wrapper for column reader
 (primitive leaf column), provides per-element access.</div></li></ul><h2 id="enums" class="section-header"><a href="#enums">Enums</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.TripletIter.html" title="enum parquet::record::triplet::TripletIter">TripletIter</a></div><div class="desc docblock-short">High level API wrapper on column reader.
diff --git a/parquet/record/triplet/struct.TypedTripletIter.html b/parquet/record/triplet/struct.TypedTripletIter.html
index 80d1f07894..ca5a6beb57 100644
--- a/parquet/record/triplet/struct.TypedTripletIter.html
+++ b/parquet/record/triplet/struct.TypedTripletIter.html
@@ -12,7 +12,7 @@
     has_next: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Internal typed triplet iterator as a wrapper for column reader
 (primitive leaf column), provides per-element access.</p>
-</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.reader" class="structfield section-header"><a href="#structfield.reader" class="anchor field">§</a><code>reader: <a class="type" href="../../column/reader/type.ColumnReaderImpl.html" title="type parquet::column::reader::ColumnReaderImpl">ColumnReaderImpl</a>&lt;T&gt;</code></span><span id="structfield.column_descr" class="structfield section-header"><a href [...]
+</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.reader" class="structfield section-header"><a href="#structfield.reader" class="anchor field">§</a><code>reader: <a class="type" href="../../column/reader/type.ColumnReaderImpl.html" title="type parquet::column::reader::ColumnReaderImpl">ColumnReaderImpl</a>&lt;T&gt;</code></span><span id="structfield.column_descr" class="structfield section-header"><a href [...]
     descr: <a class="type" href="../../schema/types/type.ColumnDescPtr.html" title="type parquet::schema::types::ColumnDescPtr">ColumnDescPtr</a>,
     batch_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
     column_reader: <a class="enum" href="../../column/reader/enum.ColumnReader.html" title="enum parquet::column::reader::ColumnReader">ColumnReader</a>
@@ -29,7 +29,7 @@ If field is required, then maximum definition level is returned.</p>
 If field is required, then maximum repetition level is returned.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.has_next" class="method"><a class="src rightside" href="../../../src/parquet/record/triplet.rs.html#285-287">source</a><h4 class="code-header">fn <a href="#method.has_next" class="fn">has_next</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>Quick check if iterator has more values/levels [...]
 It is updated as a result of <code>read_next</code> method, so they are synchronized.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.read_next" class="method"><a class="src rightside" href="../../../src/parquet/record/triplet.rs.html#291-355">source</a><h4 class="code-header">fn <a href="#method.read_next" class="fn">read_next</a>(&amp;mut self) -&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.bool [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.read_next" class="method"><a class="src rightside" href="../../../src/parquet/record/triplet.rs.html#291-358">source</a><h4 class="code-header">fn <a href="#method.read_next" class="fn">read_next</a>(&amp;mut self) -&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.bool [...]
 Returns true, if there are more records to read, false there are no records left.</p>
 </div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-TypedTripletIter%3CT%3E" class="impl"><a href="#impl-RefUnwindSafe-for-TypedTripletIter%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_s [...]
     &lt;T as <a class="trait" href="../../data_type/trait.DataType.html" title="trait parquet::data_type::DataType">DataType</a>&gt;::<a class="associatedtype" href="../../data_type/trait.DataType.html#associatedtype.T" title="type parquet::data_type::DataType::T">T</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-TypedTripletIter%3CT%3E" class="imp [...]
diff --git a/parquet/schema/types/struct.ColumnPath.html b/parquet/schema/types/struct.ColumnPath.html
index c40cc5859d..1603c11e54 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">"d"</span>.to_string(), <span class="string">"e"</span>.to_string()]);
 <span class="macro">assert_eq!</span>(<span class="kw-2">&amp;</span>path.string(), <span class="string">"a.b.c.d.e"</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="section-header">Trait Impleme [...]
+</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="section-header">Trait 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>,</div></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></d [...]
 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#242">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_derive/parquet_field/enum.Type.html b/parquet_derive/parquet_field/enum.Type.html
index 021c0e365d..f57a580a89 100644
--- a/parquet_derive/parquet_field/enum.Type.html
+++ b/parquet_derive/parquet_field/enum.Type.html
@@ -1,28 +1,28 @@
-<!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 `Type` enum in crate `parquet_derive`."><title>Type in parquet_derive::parquet_field - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as=" [...]
+<!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 `Type` enum in crate `parquet_derive`."><title>Type in parquet_derive::parquet_field - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as=" [...]
     Array(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a>&gt;),
     Option(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a>&gt;),
     Slice(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a>&gt;),
     Vec(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a>&gt;),
     TypePath(<a class="enum" href="https://docs.rs/syn/2.0.41/syn/ty/enum.Type.html" title="enum syn::ty::Type">Type</a>),
     Reference(<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://docs.rs/syn/2.0.41/syn/lifetime/struct.Lifetime.html" title="struct syn::lifetime::Lifetime">Lifetime</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Type.html" title="enum parquet_derive::parq [...]
-}</code></pre><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Array" class="variant"><a href="#variant.Array" class="anchor">§</a><h3 class="code-header">Array(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a>&gt;)</h [...]
+}</code></pre><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Array" class="variant"><a href="#variant.Array" class="anchor">§</a><h3 class="code-header">Array(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a>&gt;)</h [...]
 parquet-rs column writer</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.column_reader" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#509-528">source</a><h4 class="code-header">fn <a href="#method.column_reader" class="fn">column_reader</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/syn/2.0.41/syn/ty/struct.TypePath.html" title="struct syn::ty::TypePath">TypePath</a></h4></section></summary><div class="docblock"> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.column_reader" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#506-525">source</a><h4 class="code-header">fn <a href="#method.column_reader" class="fn">column_reader</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/syn/2.0.41/syn/ty/struct.TypePath.html" title="struct syn::ty::TypePath">TypePath</a></h4></section></summary><div class="docblock"> [...]
 parquet-rs column reader</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.leaf_type_recursive" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#539-541">source</a><h4 class="code-header">fn <a href="#method.leaf_type_recursive" class="fn">leaf_type_recursive</a>(&amp;self) -&gt; &amp;<a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a></h4></section></summary><div class="docblock"><p>Help [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.leaf_type_recursive" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#536-538">source</a><h4 class="code-header">fn <a href="#method.leaf_type_recursive" class="fn">leaf_type_recursive</a>(&amp;self) -&gt; &amp;<a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a></h4></section></summary><div class="docblock"><p>Help [...]
 <p>Ex:
 <code>Option&lt;&amp;String&gt;</code> =&gt; Type::TypePath(String)
 <code>&amp;Option&lt;i32&gt;</code> =&gt; Type::TypePath(i32)
 <code>Vec&lt;Vec&lt;u8&gt;&gt;</code> =&gt; Type::Vec(u8)</p>
 <p>Useful in determining the physical type of a field and the
 definition levels.</p>
-</div></details><section id="method.leaf_type_recursive_helper" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#543-554">source</a><h4 class="code-header">fn <a href="#method.leaf_type_recursive_helper" class="fn">leaf_type_recursive_helper</a>&lt;'a&gt;(
+</div></details><section id="method.leaf_type_recursive_helper" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#540-551">source</a><h4 class="code-header">fn <a href="#method.leaf_type_recursive_helper" class="fn">leaf_type_recursive_helper</a>&lt;'a&gt;(
     ty: &amp;'a <a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a>,
     parent_ty: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'a <a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a>&gt;
-) -&gt; &amp;'a <a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a></h4></section><details class="toggle method-toggle" open><summary><section id="method.inner_type" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#559-573">source</a><h4 class="code-header">fn <a href="#method.inner_type" class="fn">inner_type</a>(&amp;self) -&gt; &amp;<a class="enum" href="https://docs.rs/syn/2.0.41/syn/ty/enum.Type. [...]
+) -&gt; &amp;'a <a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a></h4></section><details class="toggle method-toggle" open><summary><section id="method.inner_type" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#556-570">source</a><h4 class="code-header">fn <a href="#method.inner_type" class="fn">inner_type</a>(&amp;self) -&gt; &amp;<a class="enum" href="https://docs.rs/syn/2.0.41/syn/ty/enum.Type. [...]
 type information, useful for determining the physical type
 and normalizing the type paths.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.last_part" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#587-597">source</a><h4 class="code-header">fn <a href="#method.last_part" class="fn">last_part</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.last_part" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#584-594">source</a><h4 class="code-header">fn <a href="#method.last_part" class="fn">last_part</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class="docblock" [...]
 most identifiable part</p>
 <p>Ex:
 std::string::String =&gt; String
@@ -32,17 +32,17 @@ chrono::NaiveDateTime =&gt; NaiveDateTime</p>
 rename is in play. Please note procedural macros always
 run before type resolution so this is a risk the user
 takes on when renaming imports.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.physical_type" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#606-647">source</a><h4 class="code-header">fn <a href="#method.physical_type" class="fn">physical_type</a>(&amp;self) -&gt; Type</h4></section></summary><div class="docblock"><p>Converts rust types to parquet physical types.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.physical_type" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#603-644">source</a><h4 class="code-header">fn <a href="#method.physical_type" class="fn">physical_type</a>(&amp;self) -&gt; Type</h4></section></summary><div class="docblock"><p>Converts rust types to parquet physical types.</p>
 <p>Ex:
 [u8; 10] =&gt; FIXED_LEN_BYTE_ARRAY
 <code>Vec&lt;u8&gt;</code>  =&gt; BYTE_ARRAY
 String =&gt; BYTE_ARRAY
 i32 =&gt; INT32</p>
-</div></details><section id="method.physical_type_as_rust" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#649-664">source</a><h4 class="code-header">fn <a href="#method.physical_type_as_rust" class="fn">physical_type_as_rust</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/proc-macro2/1.0.70/proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section><section id="method.logical_type"  [...]
+</div></details><section id="method.logical_type" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#646-714">source</a><h4 class="code-header">fn <a href="#method.logical_type" class="fn">logical_type</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/proc-macro2/1.0.70/proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section><section id="method.converted_type" class="method"><a class=" [...]
 parquet_derive::Field</p>
-</div></details><section id="method.from_type" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#759-771">source</a><h4 class="code-header">fn <a href="#method.from_type" class="fn">from_type</a>(f: &amp;<a class="struct" href="https://docs.rs/syn/2.0.41/syn/data/struct.Field.html" title="struct syn::data::Field">Field</a>, ty: &amp;<a class="enum" href="https://docs.rs/syn/2.0.41/syn/ty/enum.Type.html" title="enum syn::ty::Type">Type</a>) -&gt; [...]
+</div></details><section id="method.from_type" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#739-751">source</a><h4 class="code-header">fn <a href="#method.from_type" class="fn">from_type</a>(f: &amp;<a class="struct" href="https://docs.rs/syn/2.0.41/syn/data/struct.Field.html" title="struct syn::data::Field">Field</a>, ty: &amp;<a class="enum" href="https://docs.rs/syn/2.0.41/syn/ty/enum.Type.html" title="enum syn::ty::Type">Type</a>) -&gt; [...]
 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#242">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-Type" class="impl"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#473">source</a><a href="#impl-StructuralPartialEq-for-Type" 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::StructuralPartialE [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-StructuralPartialEq-for-Type" class="impl"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#470">source</a><a href="#impl-StructuralPartialEq-for-Type" 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::StructuralPartialE [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https:/ [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
diff --git a/parquet_derive/parquet_field/index.html b/parquet_derive/parquet_field/index.html
index 5dd12011f7..da34a6dc34 100644
--- a/parquet_derive/parquet_field/index.html
+++ b/parquet_derive/parquet_field/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `parquet_field` mod in crate `parquet_derive`."><title>parquet_derive::parquet_field - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as=" [...]
+<!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 `parquet_field` mod in crate `parquet_derive`."><title>parquet_derive::parquet_field - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as=" [...]
 at compile time. These libraries will
 be written to parquet as their preferred
 physical type.</div></li><li><div class="item-name"><a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a><span title="Restricted Visibility">&nbsp;🔒</span> </div></li></ul></section></div></main></body></html>
\ No newline at end of file
diff --git a/parquet_derive/parquet_field/struct.Field.html b/parquet_derive/parquet_field/struct.Field.html
index aa500e96b3..2269de3dd7 100644
--- a/parquet_derive/parquet_field/struct.Field.html
+++ b/parquet_derive/parquet_field/struct.Field.html
@@ -3,7 +3,7 @@
     ty: <a class="enum" href="enum.Type.html" title="enum parquet_derive::parquet_field::Type">Type</a>,
     is_a_byte_buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
     third_party_type: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="enum.ThirdPartyType.html" title="enum parquet_derive::parquet_field::ThirdPartyType">ThirdPartyType</a>&gt;,
-}</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.ident" class="structfield section-header"><a href="#structfield.ident" class="anchor field">§</a><code>ident: <a class="struct" href="https://docs.rs/proc-macro2/1.0.70/proc_macro2/struct.Ident.html" title="struct proc_macro2::Ident">Ident</a></code></span><span id="structfield.ty" class="structfield section-header"><a href="#structfield.ty" class="anchor fie [...]
+}</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.ident" class="structfield section-header"><a href="#structfield.ident" class="anchor field">§</a><code>ident: <a class="struct" href="https://docs.rs/proc-macro2/1.0.70/proc_macro2/struct.Ident.html" title="struct proc_macro2::Ident">Ident</a></code></span><span id="structfield.ty" class="structfield section-header"><a href="#structfield.ty" class="anchor fie [...]
 column writer snippet. Should match exactly what you
 would write by hand.</p>
 <p>Can only generate writers for basic structs, for example:</p>
@@ -18,7 +18,7 @@ nested_record: Record
 }</p>
 <p>because this parsing logic is not sophisticated enough for definition
 levels beyond 2.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.reader_snippet" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#243-286">source</a><h4 class="code-header">pub fn <a href="#method.reader_snippet" class="fn">reader_snippet</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/proc-macro2/1.0.70/proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.reader_snippet" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#243-283">source</a><h4 class="code-header">pub fn <a href="#method.reader_snippet" class="fn">reader_snippet</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/proc-macro2/1.0.70/proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section [...]
 column reader snippet. Should match exactly what you
 would write by hand.</p>
 <p>Can only generate writers for basic structs, for example:</p>
@@ -33,7 +33,7 @@ nested_record: Record
 <p>because this parsing logic is not sophisticated enough for definition
 levels beyond 2.</p>
 <p><code>Option</code> types and references not supported</p>
-</div></details><section id="method.parquet_type" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#288-341">source</a><h4 class="code-header">pub fn <a href="#method.parquet_type" class="fn">parquet_type</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/proc-macro2/1.0.70/proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section><section id="method.option_into_vals" class="method"><a c [...]
+</div></details><section id="method.parquet_type" class="method"><a class="src rightside" href="../../src/parquet_derive/parquet_field.rs.html#285-338">source</a><h4 class="code-header">pub fn <a href="#method.parquet_type" class="fn">parquet_type</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/proc-macro2/1.0.70/proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section><section id="method.option_into_vals" class="method"><a c [...]
 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#242">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_derive/parquet_field.rs.html#18">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::StructuralPartial [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
diff --git a/search-index.js b/search-index.js
index 81a3ca3811..f088578d43 100644
--- a/search-index.js
+++ b/search-index.js
@@ -24,9 +24,9 @@ const searchIndex = new Map(JSON.parse('[\
 ["flight_test_integration_client",{"doc":"","t":"FPPIPPIGNNNNNNNNNNNNNNNNNNONNNNHOOONNNNNNNNNNNNN","n":["Args","AuthBasicProto","Err","Error","Middleware","Ok","Result","Scenario","augment_args","augment_args_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","command","command_for_update","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_ref","group_id","host","into","into","into_request","into_request","main","path","port","scenario","t [...]
 ["flight_test_integration_server",{"doc":"","t":"FPPIPPIGNNNNNNNNNNNNNNNNNNNNNNHOONNNNNNNNNNNNN","n":["Args","AuthBasicProto","Err","Error","Middleware","Ok","Result","Scenario","augment_args","augment_args_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","command","command_for_update","fmt","fmt","from","from","from_arg_matches","from_arg_matches_mut","from_ref","group_id","into","into","into_request","into_request","main","port","scenario","to_owned","to_pos [...]
 ["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":"CCCCCCQCCCCCSEEFSEFNCHCCCNNNNCNNNNCONNNNNNNNOOHHHCNNNNNNNNNKFFFFFIFFFKFFHOOOONNNNNNNNNNNNNNNNNNNMNONMHOOOOCOONNNNNNNNNOONNNNNNNNOONNNNOOOOONNNNNNNNNNMNOOONNOMOOOOOOOOOONNNOOOOCOOOOHOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFFNNNNMNONNNNNNOMNONNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNONNONNONNNNNNNNNNFFFFGFFFFPPIONNONNNNNNNNNNNNNNNNNNOOCONNNNNOHOONNNNNNNNNNNNNNNNNHHNHHHNHHHHNONNNNNNNNNNNNNOCONOONNNONNNNNNNNNNNNNNNNNNNNNNNN [...]
+["parquet",{"doc":"This crate contains the official Native Rust …","t":"CCCCCCQCCCCCSEEFSEFNCHCCCNNNNCNNNNCONNNNNNNNOOHHHCNNNNNNNNNKFFFFFIFFFKFFHOOOONNNNNNNNNNNNNNNNNNNMNONMHOOOOCOONNNNNNNNNOONNNNNNNNOONNNNOOOOONNNNNNNNNNMNOOONNOMOOOOOOOOOONNNOOOOCOOOOHOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFFNNNNMNONNNNNNOMNONNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNONNONNONNNNNNNNNNFFFFGFFFFPPIONNONNNNNNNNNNNNNNNNNNOOCONNNNNOHOONNNNNNNNNNNNNNNNNHHNHHHNHHHHNONNNNNNNNNNNNNOCONOONNNONNNNNNNNNNNNNNNNNNNNNNNN [...]
 ["parquet_concat",{"doc":"Binary that concatenates the column data of one or more …","t":"FNNNNNNNNNNNONHONNNNNN","n":["Args","augment_args","augment_args_for_update","borrow","borrow_mut","command","command_for_update","fmt","from","from_arg_matches","from_arg_matches_mut","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"],[22,"clap_builder::builder::command"],[23,"core::fmt"] [...]
-["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","f [...]
+["parquet_derive",{"doc":"","t":"YYCPPPFPPPGGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNONNNNNNNNNNONNNNNNONNNN","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":"FFOOOOONNNNOOOOOOOOOONOONNNOOOONNOOOOOOOOOOOOOONNNNNNOO","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","date","double","double","eq","float","float","fmt","from","from","i16","i16","i32","i32","into" [...]
 ["parquet_fromcsv",{"doc":"Binary file to converts csv to Parquet file","t":"FPPPPPGPPPGGPPHNNONNNNNNNNNNNNNNHHHHOOOONNONNNNNNNNNNNNNNNNNNNNOOOONNNNHOOOOOONNNNNNNNNNNNNNNNNNNNNNNOH","n":["Args","ArrowError","CR","CommandLineParseError","Crlf","Csv","CsvDialect","IoError","LF","ParquetError","ParquetFromCsvError","RecordTerminator","Tsv","WithContext","arrow_schema_from_string","augment_args","augment_args_for_update","batch_size","borrow","borrow","borrow","borrow","borrow_mut","borrow_m [...]
 ["parquet_index",{"doc":"Binary that prints the [page index] of a parquet file","t":"FNNNNONNHONNNNNNHHNNNNNN","n":["Args","augment_args","augment_args_for_update","borrow","borrow_mut","column","command","command_for_update","compute_row_counts","file","fmt","from","from_arg_matches","from_arg_matches_mut","group_id","into","main","print_index","run","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut"],"q":[[0,"parquet_index"],[24,"clap_builder::build [...]
diff --git a/settings.html b/settings.html
index 07163fa42d..edf1ffe056 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/parquet/arrow/array_reader/byte_array.rs.html b/src/parquet/arrow/array_reader/byte_array.rs.html
index 3685a722cc..4709d7cfe9 100644
--- a/src/parquet/arrow/array_reader/byte_array.rs.html
+++ b/src/parquet/arrow/array_reader/byte_array.rs.html
@@ -748,11 +748,10 @@
 <span class="kw">use </span>arrow_array::{
     Array, ArrayRef, BinaryArray, Decimal128Array, Decimal256Array, OffsetSizeTrait,
 };
-<span class="kw">use </span>arrow_buffer::{i256, Buffer};
+<span class="kw">use </span>arrow_buffer::i256;
 <span class="kw">use </span>arrow_schema::DataType <span class="kw">as </span>ArrowType;
 <span class="kw">use </span>bytes::Bytes;
 <span class="kw">use </span>std::any::Any;
-<span class="kw">use </span>std::ops::Range;
 <span class="kw">use </span>std::sync::Arc;
 
 <span class="doccomment">/// Returns an [`ArrayReader`] that decodes the provided byte array column
@@ -796,8 +795,8 @@
 </span><span class="kw">struct </span>ByteArrayReader&lt;I: OffsetSizeTrait&gt; {
     data_type: ArrowType,
     pages: Box&lt;<span class="kw">dyn </span>PageIterator&gt;,
-    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
-    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
+    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
+    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
     record_reader: GenericRecordReader&lt;OffsetBuffer&lt;I&gt;, ByteArrayColumnValueDecoder&lt;I&gt;&gt;,
 }
 
@@ -871,11 +870,11 @@
     }
 
     <span class="kw">fn </span>get_def_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.def_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.def_levels_buffer.as_deref()
     }
 
     <span class="kw">fn </span>get_rep_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.rep_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.rep_levels_buffer.as_deref()
     }
 }
 
@@ -887,7 +886,7 @@
 }
 
 <span class="kw">impl</span>&lt;I: OffsetSizeTrait&gt; ColumnValueDecoder <span class="kw">for </span>ByteArrayColumnValueDecoder&lt;I&gt; {
-    <span class="kw">type </span>Slice = OffsetBuffer&lt;I&gt;;
+    <span class="kw">type </span>Buffer = OffsetBuffer&lt;I&gt;;
 
     <span class="kw">fn </span>new(desc: <span class="kw-2">&amp;</span>ColumnDescPtr) -&gt; <span class="self">Self </span>{
         <span class="kw">let </span>validate_utf8 = desc.converted_type() == ConvertedType::UTF8;
@@ -944,13 +943,13 @@
         <span class="prelude-val">Ok</span>(())
     }
 
-    <span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice, range: Range&lt;usize&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
+    <span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer, num_values: usize) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
         <span class="kw">let </span>decoder = <span class="self">self
             </span>.decoder
             .as_mut()
             .ok_or_else(|| <span class="macro">general_err!</span>(<span class="string">"no decoder set"</span>))<span class="question-mark">?</span>;
 
-        decoder.read(out, range.end - range.start, <span class="self">self</span>.dict.as_ref())
+        decoder.read(out, num_values, <span class="self">self</span>.dict.as_ref())
     }
 
     <span class="kw">fn </span>skip_values(<span class="kw-2">&amp;mut </span><span class="self">self</span>, num_values: usize) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
@@ -1307,6 +1306,7 @@
     <span class="kw">use </span><span class="kw">crate</span>::arrow::array_reader::test_util::{byte_array_all_encodings, utf8_column};
     <span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::buffer::ValuesBuffer;
     <span class="kw">use </span>arrow_array::{Array, StringArray};
+    <span class="kw">use </span>arrow_buffer::Buffer;
 
     <span class="attr">#[test]
     </span><span class="kw">fn </span>test_byte_array_decoder() {
@@ -1324,20 +1324,20 @@
             <span class="kw">let </span><span class="kw-2">mut </span>output = OffsetBuffer::&lt;i32&gt;::default();
             decoder.set_data(encoding, page, <span class="number">4</span>, <span class="prelude-val">Some</span>(<span class="number">4</span>)).unwrap();
 
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">0</span>..<span class="number">1</span>).unwrap(), <span class="number">1</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1</span>).unwrap(), <span class="number">1</span>);
 
             <span class="macro">assert_eq!</span>(output.values.as_slice(), <span class="string">"hello"</span>.as_bytes());
             <span class="macro">assert_eq!</span>(output.offsets.as_slice(), <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">5</span>]);
 
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1</span>..<span class="number">2</span>).unwrap(), <span class="number">1</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1</span>).unwrap(), <span class="number">1</span>);
             <span class="macro">assert_eq!</span>(output.values.as_slice(), <span class="string">"helloworld"</span>.as_bytes());
             <span class="macro">assert_eq!</span>(output.offsets.as_slice(), <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">5</span>, <span class="number">10</span>]);
 
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">2</span>..<span class="number">4</span>).unwrap(), <span class="number">2</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">2</span>).unwrap(), <span class="number">2</span>);
             <span class="macro">assert_eq!</span>(output.values.as_slice(), <span class="string">"helloworldab"</span>.as_bytes());
             <span class="macro">assert_eq!</span>(output.offsets.as_slice(), <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">5</span>, <span class="number">10</span>, <span class="number">11</span>, <span class="number">12</span>]);
 
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">4</span>..<span class="number">8</span>).unwrap(), <span class="number">0</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">4</span>).unwrap(), <span class="number">0</span>);
 
             <span class="kw">let </span>valid = [<span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">true</span>, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">true</span>, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>];
             <span class="kw">let </span>valid_buffer = Buffer::from_iter(valid.iter().cloned());
@@ -1379,7 +1379,7 @@
             <span class="kw">let </span><span class="kw-2">mut </span>output = OffsetBuffer::&lt;i32&gt;::default();
             decoder.set_data(encoding, page, <span class="number">4</span>, <span class="prelude-val">Some</span>(<span class="number">4</span>)).unwrap();
 
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">0</span>..<span class="number">1</span>).unwrap(), <span class="number">1</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1</span>).unwrap(), <span class="number">1</span>);
 
             <span class="macro">assert_eq!</span>(output.values.as_slice(), <span class="string">"hello"</span>.as_bytes());
             <span class="macro">assert_eq!</span>(output.offsets.as_slice(), <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">5</span>]);
@@ -1387,11 +1387,11 @@
             <span class="macro">assert_eq!</span>(decoder.skip_values(<span class="number">1</span>).unwrap(), <span class="number">1</span>);
             <span class="macro">assert_eq!</span>(decoder.skip_values(<span class="number">1</span>).unwrap(), <span class="number">1</span>);
 
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1</span>..<span class="number">2</span>).unwrap(), <span class="number">1</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1</span>).unwrap(), <span class="number">1</span>);
             <span class="macro">assert_eq!</span>(output.values.as_slice(), <span class="string">"hellob"</span>.as_bytes());
             <span class="macro">assert_eq!</span>(output.offsets.as_slice(), <span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">5</span>, <span class="number">6</span>]);
 
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">4</span>..<span class="number">8</span>).unwrap(), <span class="number">0</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">4</span>).unwrap(), <span class="number">0</span>);
 
             <span class="kw">let </span>valid = [<span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">true</span>, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">false</span>];
             <span class="kw">let </span>valid_buffer = Buffer::from_iter(valid.iter().cloned());
@@ -1422,7 +1422,7 @@
         </span><span class="kw">for </span>(encoding, page) <span class="kw">in </span>pages.clone() {
             <span class="kw">let </span><span class="kw-2">mut </span>output = OffsetBuffer::&lt;i32&gt;::default();
             decoder.set_data(encoding, page, <span class="number">4</span>, <span class="prelude-val">None</span>).unwrap();
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">0</span>..<span class="number">1024</span>).unwrap(), <span class="number">0</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1024</span>).unwrap(), <span class="number">0</span>);
         }
 
         <span class="comment">// test nulls skip
diff --git a/src/parquet/arrow/array_reader/byte_array_dictionary.rs.html b/src/parquet/arrow/array_reader/byte_array_dictionary.rs.html
index ec1029cd69..e0799d4ef3 100644
--- a/src/parquet/arrow/array_reader/byte_array_dictionary.rs.html
+++ b/src/parquet/arrow/array_reader/byte_array_dictionary.rs.html
@@ -667,6 +667,9 @@
 <a href="#667" id="667">667</a>
 <a href="#668" id="668">668</a>
 <a href="#669" id="669">669</a>
+<a href="#670" id="670">670</a>
+<a href="#671" id="671">671</a>
+<a href="#672" id="672">672</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
@@ -686,18 +689,16 @@
 
 </span><span class="kw">use </span>std::any::Any;
 <span class="kw">use </span>std::marker::PhantomData;
-<span class="kw">use </span>std::ops::Range;
 <span class="kw">use </span>std::sync::Arc;
 
 <span class="kw">use </span>arrow_array::{Array, ArrayRef, OffsetSizeTrait};
-<span class="kw">use </span>arrow_buffer::{ArrowNativeType, Buffer};
+<span class="kw">use </span>arrow_buffer::ArrowNativeType;
 <span class="kw">use </span>arrow_schema::DataType <span class="kw">as </span>ArrowType;
 <span class="kw">use </span>bytes::Bytes;
 
 <span class="kw">use </span><span class="kw">crate</span>::arrow::array_reader::byte_array::{ByteArrayDecoder, ByteArrayDecoderPlain};
 <span class="kw">use </span><span class="kw">crate</span>::arrow::array_reader::{read_records, skip_records, ArrayReader};
 <span class="kw">use </span><span class="kw">crate</span>::arrow::buffer::{dictionary_buffer::DictionaryBuffer, offset_buffer::OffsetBuffer};
-<span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::buffer::BufferQueue;
 <span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::GenericRecordReader;
 <span class="kw">use </span><span class="kw">crate</span>::arrow::schema::parquet_to_arrow_field;
 <span class="kw">use </span><span class="kw">crate</span>::basic::{ConvertedType, Encoding};
@@ -793,8 +794,8 @@
 </span><span class="kw">struct </span>ByteArrayDictionaryReader&lt;K: ArrowNativeType, V: OffsetSizeTrait&gt; {
     data_type: ArrowType,
     pages: Box&lt;<span class="kw">dyn </span>PageIterator&gt;,
-    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
-    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
+    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
+    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
     record_reader: GenericRecordReader&lt;DictionaryBuffer&lt;K, V&gt;, DictionaryDecoder&lt;K, V&gt;&gt;,
 }
 
@@ -852,11 +853,11 @@
     }
 
     <span class="kw">fn </span>get_def_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.def_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.def_levels_buffer.as_deref()
     }
 
     <span class="kw">fn </span>get_rep_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.rep_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.rep_levels_buffer.as_deref()
     }
 }
 
@@ -893,7 +894,7 @@
     </span>K: FromBytes + Ord + ArrowNativeType,
     V: OffsetSizeTrait,
 {
-    <span class="kw">type </span>Slice = DictionaryBuffer&lt;K, V&gt;;
+    <span class="kw">type </span>Buffer = DictionaryBuffer&lt;K, V&gt;;
 
     <span class="kw">fn </span>new(col: <span class="kw-2">&amp;</span>ColumnDescPtr) -&gt; <span class="self">Self </span>{
         <span class="kw">let </span>validate_utf8 = col.converted_type() == ConvertedType::UTF8;
@@ -975,16 +976,16 @@
         <span class="prelude-val">Ok</span>(())
     }
 
-    <span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice, range: Range&lt;usize&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
+    <span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer, num_values: usize) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
         <span class="kw">match </span><span class="self">self</span>.decoder.as_mut().expect(<span class="string">"decoder set"</span>) {
             MaybeDictionaryDecoder::Fallback(decoder) =&gt; {
-                decoder.read(out.spill_values()<span class="question-mark">?</span>, range.end - range.start, <span class="prelude-val">None</span>)
+                decoder.read(out.spill_values()<span class="question-mark">?</span>, num_values, <span class="prelude-val">None</span>)
             }
             MaybeDictionaryDecoder::Dict {
                 decoder,
                 max_remaining_values,
             } =&gt; {
-                <span class="kw">let </span>len = (range.end - range.start).min(<span class="kw-2">*</span>max_remaining_values);
+                <span class="kw">let </span>len = num_values.min(<span class="kw-2">*</span>max_remaining_values);
 
                 <span class="kw">let </span>dict = <span class="self">self
                     </span>.dict
@@ -1001,8 +1002,12 @@
                     <span class="prelude-val">Some</span>(keys) =&gt; {
                         <span class="comment">// Happy path - can just copy keys
                         // Keys will be validated on conversion to arrow
-                        </span><span class="kw">let </span>keys_slice = keys.get_output_slice(len);
-                        <span class="kw">let </span>len = decoder.get_batch(keys_slice)<span class="question-mark">?</span>;
+
+                        // TODO: Push vec into decoder (#5177)
+                        </span><span class="kw">let </span>start = keys.len();
+                        keys.resize(start + len, K::default());
+                        <span class="kw">let </span>len = decoder.get_batch(<span class="kw-2">&amp;mut </span>keys[start..])<span class="question-mark">?</span>;
+                        keys.truncate(start + len);
                         <span class="kw-2">*</span>max_remaining_values -= len;
                         <span class="prelude-val">Ok</span>(len)
                     }
@@ -1050,6 +1055,7 @@
 </span><span class="kw">mod </span>tests {
     <span class="kw">use </span>arrow::compute::cast;
     <span class="kw">use </span>arrow_array::{Array, StringArray};
+    <span class="kw">use </span>arrow_buffer::Buffer;
 
     <span class="kw">use </span><span class="kw">crate</span>::arrow::array_reader::test_util::{
         byte_array_all_encodings, encode_dictionary, utf8_column,
@@ -1085,7 +1091,7 @@
             .unwrap();
 
         <span class="kw">let </span><span class="kw-2">mut </span>output = DictionaryBuffer::&lt;i32, i32&gt;::default();
-        <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">0</span>..<span class="number">3</span>).unwrap(), <span class="number">3</span>);
+        <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">3</span>).unwrap(), <span class="number">3</span>);
 
         <span class="kw">let </span><span class="kw-2">mut </span>valid = <span class="macro">vec!</span>[<span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">true</span>, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">true</span>];
         <span class="kw">let </span>valid_buffer = Buffer::from_iter(valid.iter().cloned());
@@ -1093,7 +1099,7 @@
 
         <span class="macro">assert!</span>(<span class="macro">matches!</span>(output, DictionaryBuffer::Dict { .. }));
 
-        <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">0</span>..<span class="number">4</span>).unwrap(), <span class="number">4</span>);
+        <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">4</span>).unwrap(), <span class="number">4</span>);
 
         valid.extend_from_slice(<span class="kw-2">&amp;</span>[<span class="bool-val">false</span>, <span class="bool-val">false</span>, <span class="bool-val">true</span>, <span class="bool-val">true</span>, <span class="bool-val">false</span>, <span class="bool-val">true</span>, <span class="bool-val">true</span>, <span class="bool-val">false</span>]);
         <span class="kw">let </span>valid_buffer = Buffer::from_iter(valid.iter().cloned());
@@ -1153,17 +1159,17 @@
         <span class="kw">let </span><span class="kw-2">mut </span>output = DictionaryBuffer::&lt;i32, i32&gt;::default();
 
         <span class="comment">// read two skip one
-        </span><span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">0</span>..<span class="number">2</span>).unwrap(), <span class="number">2</span>);
+        </span><span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">2</span>).unwrap(), <span class="number">2</span>);
         <span class="macro">assert_eq!</span>(decoder.skip_values(<span class="number">1</span>).unwrap(), <span class="number">1</span>);
 
         <span class="macro">assert!</span>(<span class="macro">matches!</span>(output, DictionaryBuffer::Dict { .. }));
 
         <span class="comment">// read two skip one
-        </span><span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">2</span>..<span class="number">4</span>).unwrap(), <span class="number">2</span>);
+        </span><span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">2</span>).unwrap(), <span class="number">2</span>);
         <span class="macro">assert_eq!</span>(decoder.skip_values(<span class="number">1</span>).unwrap(), <span class="number">1</span>);
 
         <span class="comment">// read one and test on skip at the end
-        </span><span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">4</span>..<span class="number">5</span>).unwrap(), <span class="number">1</span>);
+        </span><span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1</span>).unwrap(), <span class="number">1</span>);
         <span class="macro">assert_eq!</span>(decoder.skip_values(<span class="number">4</span>).unwrap(), <span class="number">0</span>);
 
         <span class="kw">let </span>valid = [<span class="bool-val">true</span>, <span class="bool-val">true</span>, <span class="bool-val">true</span>, <span class="bool-val">true</span>, <span class="bool-val">true</span>];
@@ -1205,7 +1211,7 @@
 
         <span class="kw">for </span>(encoding, page) <span class="kw">in </span>pages {
             decoder.set_data(encoding, page, <span class="number">4</span>, <span class="prelude-val">Some</span>(<span class="number">4</span>)).unwrap();
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">0</span>..<span class="number">1024</span>).unwrap(), <span class="number">4</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1024</span>).unwrap(), <span class="number">4</span>);
         }
         <span class="kw">let </span>array = output.into_array(<span class="prelude-val">None</span>, <span class="kw-2">&amp;</span>data_type).unwrap();
         <span class="macro">assert_eq!</span>(array.data_type(), <span class="kw-2">&amp;</span>data_type);
@@ -1249,7 +1255,7 @@
         <span class="kw">for </span>(encoding, page) <span class="kw">in </span>pages {
             decoder.set_data(encoding, page, <span class="number">4</span>, <span class="prelude-val">Some</span>(<span class="number">4</span>)).unwrap();
             decoder.skip_values(<span class="number">2</span>).expect(<span class="string">"skipping two values"</span>);
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">0</span>..<span class="number">1024</span>).unwrap(), <span class="number">2</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1024</span>).unwrap(), <span class="number">2</span>);
         }
         <span class="kw">let </span>array = output.into_array(<span class="prelude-val">None</span>, <span class="kw-2">&amp;</span>data_type).unwrap();
         <span class="macro">assert_eq!</span>(array.data_type(), <span class="kw-2">&amp;</span>data_type);
@@ -1310,7 +1316,7 @@
         <span class="kw">for </span>(encoding, page) <span class="kw">in </span>pages.clone() {
             <span class="kw">let </span><span class="kw-2">mut </span>output = DictionaryBuffer::&lt;i32, i32&gt;::default();
             decoder.set_data(encoding, page, <span class="number">8</span>, <span class="prelude-val">None</span>).unwrap();
-            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">0</span>..<span class="number">1024</span>).unwrap(), <span class="number">0</span>);
+            <span class="macro">assert_eq!</span>(decoder.read(<span class="kw-2">&amp;mut </span>output, <span class="number">1024</span>).unwrap(), <span class="number">0</span>);
 
             output.pad_nulls(<span class="number">0</span>, <span class="number">0</span>, <span class="number">8</span>, <span class="kw-2">&amp;</span>[<span class="number">0</span>]);
             <span class="kw">let </span>array = output
diff --git a/src/parquet/arrow/array_reader/fixed_len_byte_array.rs.html b/src/parquet/arrow/array_reader/fixed_len_byte_array.rs.html
index 6dad03e2b6..c79a0ce175 100644
--- a/src/parquet/arrow/array_reader/fixed_len_byte_array.rs.html
+++ b/src/parquet/arrow/array_reader/fixed_len_byte_array.rs.html
@@ -465,33 +465,6 @@
 <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>
 </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
@@ -512,12 +485,12 @@
 </span><span class="kw">use </span><span class="kw">crate</span>::arrow::array_reader::{read_records, skip_records, ArrayReader};
 <span class="kw">use </span><span class="kw">crate</span>::arrow::buffer::bit_util::{iter_set_bits_rev, sign_extend_be};
 <span class="kw">use </span><span class="kw">crate</span>::arrow::decoder::{DeltaByteArrayDecoder, DictIndexDecoder};
-<span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::buffer::{BufferQueue, ValuesBuffer};
+<span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::buffer::ValuesBuffer;
 <span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::GenericRecordReader;
 <span class="kw">use </span><span class="kw">crate</span>::arrow::schema::parquet_to_arrow_field;
 <span class="kw">use </span><span class="kw">crate</span>::basic::{Encoding, Type};
 <span class="kw">use </span><span class="kw">crate</span>::column::page::PageIterator;
-<span class="kw">use </span><span class="kw">crate</span>::column::reader::decoder::{ColumnValueDecoder, ValuesBufferSlice};
+<span class="kw">use </span><span class="kw">crate</span>::column::reader::decoder::ColumnValueDecoder;
 <span class="kw">use </span><span class="kw">crate</span>::errors::{ParquetError, <span class="prelude-ty">Result</span>};
 <span class="kw">use </span><span class="kw">crate</span>::schema::types::ColumnDescPtr;
 <span class="kw">use </span>arrow_array::{
@@ -530,7 +503,6 @@
 <span class="kw">use </span>bytes::Bytes;
 <span class="kw">use </span>half::f16;
 <span class="kw">use </span>std::any::Any;
-<span class="kw">use </span>std::ops::Range;
 <span class="kw">use </span>std::sync::Arc;
 
 <span class="doccomment">/// Returns an [`ArrayReader`] that decodes the provided fixed length byte array column
@@ -611,8 +583,8 @@
     data_type: ArrowType,
     byte_length: usize,
     pages: Box&lt;<span class="kw">dyn </span>PageIterator&gt;,
-    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
-    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
+    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
+    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
     record_reader: GenericRecordReader&lt;FixedLenByteArrayBuffer, ValueDecoder&gt;,
 }
 
@@ -629,13 +601,7 @@
             pages,
             def_levels_buffer: <span class="prelude-val">None</span>,
             rep_levels_buffer: <span class="prelude-val">None</span>,
-            record_reader: GenericRecordReader::new_with_records(
-                column_desc,
-                FixedLenByteArrayBuffer {
-                    buffer: Default::default(),
-                    byte_length,
-                },
-            ),
+            record_reader: GenericRecordReader::new(column_desc),
         }
     }
 }
@@ -658,7 +624,7 @@
 
         <span class="kw">let </span>array_data = ArrayDataBuilder::new(ArrowType::FixedSizeBinary(<span class="self">self</span>.byte_length <span class="kw">as </span>i32))
             .len(<span class="self">self</span>.record_reader.num_values())
-            .add_buffer(record_data)
+            .add_buffer(Buffer::from_vec(record_data.buffer))
             .null_bit_buffer(<span class="self">self</span>.record_reader.consume_bitmap_buffer());
 
         <span class="kw">let </span>binary = FixedSizeBinaryArray::from(<span class="kw">unsafe </span>{ array_data.build_unchecked() });
@@ -725,41 +691,19 @@
     }
 
     <span class="kw">fn </span>get_def_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.def_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.def_levels_buffer.as_deref()
     }
 
     <span class="kw">fn </span>get_rep_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.rep_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.rep_levels_buffer.as_deref()
     }
 }
 
-<span class="kw">struct </span>FixedLenByteArrayBuffer {
+<span class="attr">#[derive(Default)]
+</span><span class="kw">struct </span>FixedLenByteArrayBuffer {
     buffer: Vec&lt;u8&gt;,
     <span class="doccomment">/// The length of each element in bytes
-    </span>byte_length: usize,
-}
-
-<span class="kw">impl </span>ValuesBufferSlice <span class="kw">for </span>FixedLenByteArrayBuffer {
-    <span class="kw">fn </span>capacity(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; usize {
-        usize::MAX
-    }
-}
-
-<span class="kw">impl </span>BufferQueue <span class="kw">for </span>FixedLenByteArrayBuffer {
-    <span class="kw">type </span>Output = Buffer;
-    <span class="kw">type </span>Slice = <span class="self">Self</span>;
-
-    <span class="kw">fn </span>consume(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="self">Self</span>::Output {
-        Buffer::from_vec(<span class="self">self</span>.buffer.consume())
-    }
-
-    <span class="kw">fn </span>get_output_slice(<span class="kw-2">&amp;mut </span><span class="self">self</span>, _batch_size: usize) -&gt; <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice {
-        <span class="self">self
-    </span>}
-
-    <span class="kw">fn </span>truncate_buffer(<span class="kw-2">&amp;mut </span><span class="self">self</span>, len: usize) {
-        <span class="macro">assert_eq!</span>(<span class="self">self</span>.buffer.len(), len * <span class="self">self</span>.byte_length);
-    }
+    </span>byte_length: <span class="prelude-ty">Option</span>&lt;usize&gt;,
 }
 
 <span class="kw">impl </span>ValuesBuffer <span class="kw">for </span>FixedLenByteArrayBuffer {
@@ -770,12 +714,11 @@
         levels_read: usize,
         valid_mask: <span class="kw-2">&amp;</span>[u8],
     ) {
-        <span class="macro">assert_eq!</span>(
-            <span class="self">self</span>.buffer.len(),
-            (read_offset + values_read) * <span class="self">self</span>.byte_length
-        );
+        <span class="kw">let </span>byte_length = <span class="self">self</span>.byte_length.unwrap_or_default();
+
+        <span class="macro">assert_eq!</span>(<span class="self">self</span>.buffer.len(), (read_offset + values_read) * byte_length);
         <span class="self">self</span>.buffer
-            .resize((read_offset + levels_read) * <span class="self">self</span>.byte_length, <span class="number">0</span>);
+            .resize((read_offset + levels_read) * byte_length, <span class="number">0</span>);
 
         <span class="kw">let </span>values_range = read_offset..read_offset + values_read;
         <span class="kw">for </span>(value_pos, level_pos) <span class="kw">in </span>values_range.rev().zip(iter_set_bits_rev(valid_mask)) {
@@ -784,10 +727,10 @@
                 <span class="kw">break</span>;
             }
 
-            <span class="kw">let </span>level_pos_bytes = level_pos * <span class="self">self</span>.byte_length;
-            <span class="kw">let </span>value_pos_bytes = value_pos * <span class="self">self</span>.byte_length;
+            <span class="kw">let </span>level_pos_bytes = level_pos * byte_length;
+            <span class="kw">let </span>value_pos_bytes = value_pos * byte_length;
 
-            <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..<span class="self">self</span>.byte_length {
+            <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..byte_length {
                 <span class="self">self</span>.buffer[level_pos_bytes + i] = <span class="self">self</span>.buffer[value_pos_bytes + i]
             }
         }
@@ -801,7 +744,7 @@
 }
 
 <span class="kw">impl </span>ColumnValueDecoder <span class="kw">for </span>ValueDecoder {
-    <span class="kw">type </span>Slice = FixedLenByteArrayBuffer;
+    <span class="kw">type </span>Buffer = FixedLenByteArrayBuffer;
 
     <span class="kw">fn </span>new(col: <span class="kw-2">&amp;</span>ColumnDescPtr) -&gt; <span class="self">Self </span>{
         <span class="self">Self </span>{
@@ -868,13 +811,16 @@
         <span class="prelude-val">Ok</span>(())
     }
 
-    <span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice, range: Range&lt;usize&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
-        <span class="macro">assert_eq!</span>(<span class="self">self</span>.byte_length, out.byte_length);
+    <span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer, num_values: usize) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
+        <span class="kw">match </span>out.byte_length {
+            <span class="prelude-val">Some</span>(x) =&gt; <span class="macro">assert_eq!</span>(x, <span class="self">self</span>.byte_length),
+            <span class="prelude-val">None </span>=&gt; out.byte_length = <span class="prelude-val">Some</span>(<span class="self">self</span>.byte_length),
+        }
 
-        <span class="kw">let </span>len = range.end - range.start;
         <span class="kw">match </span><span class="self">self</span>.decoder.as_mut().unwrap() {
             Decoder::Plain { offset, buf } =&gt; {
-                <span class="kw">let </span>to_read = (len * <span class="self">self</span>.byte_length).min(buf.len() - <span class="kw-2">*</span>offset) / <span class="self">self</span>.byte_length;
+                <span class="kw">let </span>to_read =
+                    (num_values * <span class="self">self</span>.byte_length).min(buf.len() - <span class="kw-2">*</span>offset) / <span class="self">self</span>.byte_length;
                 <span class="kw">let </span>end_offset = <span class="kw-2">*</span>offset + to_read * <span class="self">self</span>.byte_length;
                 out.buffer
                     .extend_from_slice(<span class="kw-2">&amp;</span>buf.as_ref()[<span class="kw-2">*</span>offset..end_offset]);
@@ -888,7 +834,7 @@
                     <span class="kw">return </span><span class="prelude-val">Ok</span>(<span class="number">0</span>);
                 }
 
-                decoder.read(len, |keys| {
+                decoder.read(num_values, |keys| {
                     out.buffer.reserve(keys.len() * <span class="self">self</span>.byte_length);
                     <span class="kw">for </span>key <span class="kw">in </span>keys {
                         <span class="kw">let </span>offset = <span class="kw-2">*</span>key <span class="kw">as </span>usize * <span class="self">self</span>.byte_length;
@@ -899,7 +845,7 @@
                 })
             }
             Decoder::Delta { decoder } =&gt; {
-                <span class="kw">let </span>to_read = len.min(decoder.remaining());
+                <span class="kw">let </span>to_read = num_values.min(decoder.remaining());
                 out.buffer.reserve(to_read * <span class="self">self</span>.byte_length);
 
                 decoder.read(to_read, |slice| {
diff --git a/src/parquet/arrow/array_reader/mod.rs.html b/src/parquet/arrow/array_reader/mod.rs.html
index 0a02359806..42d1f504f7 100644
--- a/src/parquet/arrow/array_reader/mod.rs.html
+++ b/src/parquet/arrow/array_reader/mod.rs.html
@@ -316,7 +316,7 @@
 ) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt;
 <span class="kw">where
     </span>V: ValuesBuffer,
-    CV: ColumnValueDecoder&lt;Slice = V::Slice&gt;,
+    CV: ColumnValueDecoder&lt;Buffer = V&gt;,
 {
     <span class="kw">let </span><span class="kw-2">mut </span>records_read = <span class="number">0usize</span>;
     <span class="kw">while </span>records_read &lt; batch_size {
@@ -350,7 +350,7 @@
 ) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt;
 <span class="kw">where
     </span>V: ValuesBuffer,
-    CV: ColumnValueDecoder&lt;Slice = V::Slice&gt;,
+    CV: ColumnValueDecoder&lt;Buffer = V&gt;,
 {
     <span class="kw">let </span><span class="kw-2">mut </span>records_skipped = <span class="number">0usize</span>;
     <span class="kw">while </span>records_skipped &lt; batch_size {
diff --git a/src/parquet/arrow/array_reader/null_array.rs.html b/src/parquet/arrow/array_reader/null_array.rs.html
index e5e6c20ff7..6ed4f8eba0 100644
--- a/src/parquet/arrow/array_reader/null_array.rs.html
+++ b/src/parquet/arrow/array_reader/null_array.rs.html
@@ -130,7 +130,7 @@
 <span class="kw">use </span><span class="kw">crate</span>::errors::Result;
 <span class="kw">use </span><span class="kw">crate</span>::schema::types::ColumnDescPtr;
 <span class="kw">use </span>arrow_array::ArrayRef;
-<span class="kw">use </span>arrow_buffer::{ArrowNativeType, Buffer};
+<span class="kw">use </span>arrow_buffer::ArrowNativeType;
 <span class="kw">use </span>arrow_schema::DataType <span class="kw">as </span>ArrowType;
 <span class="kw">use </span>std::any::Any;
 <span class="kw">use </span>std::sync::Arc;
@@ -144,8 +144,8 @@
 {
     data_type: ArrowType,
     pages: Box&lt;<span class="kw">dyn </span>PageIterator&gt;,
-    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
-    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
+    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
+    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
     record_reader: RecordReader&lt;T&gt;,
 }
 
@@ -207,11 +207,11 @@
     }
 
     <span class="kw">fn </span>get_def_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.def_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.def_levels_buffer.as_deref()
     }
 
     <span class="kw">fn </span>get_rep_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.rep_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.rep_levels_buffer.as_deref()
     }
 }
 </code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/src/parquet/arrow/array_reader/primitive_array.rs.html b/src/parquet/arrow/array_reader/primitive_array.rs.html
index 94203c10e3..f0ab3da555 100644
--- a/src/parquet/arrow/array_reader/primitive_array.rs.html
+++ b/src/parquet/arrow/array_reader/primitive_array.rs.html
@@ -865,8 +865,8 @@
 {
     data_type: ArrowType,
     pages: Box&lt;<span class="kw">dyn </span>PageIterator&gt;,
-    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
-    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Buffer&gt;,
+    def_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
+    rep_levels_buffer: <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt;,
     record_reader: RecordReader&lt;T&gt;,
 }
 
@@ -1075,11 +1075,11 @@
     }
 
     <span class="kw">fn </span>get_def_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.def_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.def_levels_buffer.as_deref()
     }
 
     <span class="kw">fn </span>get_rep_levels(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>[i16]&gt; {
-        <span class="self">self</span>.rep_levels_buffer.as_ref().map(|buf| buf.typed_data())
+        <span class="self">self</span>.rep_levels_buffer.as_deref()
     }
 }
 
diff --git a/src/parquet/arrow/buffer/dictionary_buffer.rs.html b/src/parquet/arrow/buffer/dictionary_buffer.rs.html
index 069c2203bd..a8bde52381 100644
--- a/src/parquet/arrow/buffer/dictionary_buffer.rs.html
+++ b/src/parquet/arrow/buffer/dictionary_buffer.rs.html
@@ -325,39 +325,6 @@
 <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>
 </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
@@ -376,8 +343,7 @@
 // under the License.
 
 </span><span class="kw">use </span><span class="kw">crate</span>::arrow::buffer::offset_buffer::OffsetBuffer;
-<span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::buffer::{BufferQueue, ValuesBuffer};
-<span class="kw">use </span><span class="kw">crate</span>::column::reader::decoder::ValuesBufferSlice;
+<span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::buffer::ValuesBuffer;
 <span class="kw">use </span><span class="kw">crate</span>::errors::{ParquetError, <span class="prelude-ty">Result</span>};
 <span class="kw">use </span>arrow_array::{make_array, Array, ArrayRef, OffsetSizeTrait};
 <span class="kw">use </span>arrow_buffer::{ArrowNativeType, Buffer};
@@ -545,12 +511,6 @@
     }
 }
 
-<span class="kw">impl</span>&lt;K: ArrowNativeType, V: OffsetSizeTrait&gt; ValuesBufferSlice <span class="kw">for </span>DictionaryBuffer&lt;K, V&gt; {
-    <span class="kw">fn </span>capacity(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; usize {
-        usize::MAX
-    }
-}
-
 <span class="kw">impl</span>&lt;K: ArrowNativeType, V: OffsetSizeTrait&gt; ValuesBuffer <span class="kw">for </span>DictionaryBuffer&lt;K, V&gt; {
     <span class="kw">fn </span>pad_nulls(
         <span class="kw-2">&amp;mut </span><span class="self">self</span>,
@@ -571,34 +531,6 @@
     }
 }
 
-<span class="kw">impl</span>&lt;K: ArrowNativeType, V: OffsetSizeTrait&gt; BufferQueue <span class="kw">for </span>DictionaryBuffer&lt;K, V&gt; {
-    <span class="kw">type </span>Output = <span class="self">Self</span>;
-    <span class="kw">type </span>Slice = <span class="self">Self</span>;
-
-    <span class="kw">fn </span>consume(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="self">Self</span>::Output {
-        <span class="kw">match </span><span class="self">self </span>{
-            <span class="self">Self</span>::Dict { keys, values } =&gt; <span class="self">Self</span>::Dict {
-                keys: std::mem::take(keys),
-                values: values.clone(),
-            },
-            <span class="self">Self</span>::Values { values } =&gt; <span class="self">Self</span>::Values {
-                values: values.consume(),
-            },
-        }
-    }
-
-    <span class="kw">fn </span>get_output_slice(<span class="kw-2">&amp;mut </span><span class="self">self</span>, _batch_size: usize) -&gt; <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice {
-        <span class="self">self
-    </span>}
-
-    <span class="kw">fn </span>truncate_buffer(<span class="kw-2">&amp;mut </span><span class="self">self</span>, len: usize) {
-        <span class="kw">match </span><span class="self">self </span>{
-            <span class="self">Self</span>::Dict { keys, .. } =&gt; keys.truncate_buffer(len),
-            <span class="self">Self</span>::Values { values } =&gt; values.truncate_buffer(len),
-        }
-    }
-}
-
 <span class="attr">#[cfg(test)]
 </span><span class="kw">mod </span>tests {
     <span class="kw">use super</span>::<span class="kw-2">*</span>;
@@ -634,7 +566,7 @@
         buffer.pad_nulls(read_offset, <span class="number">2</span>, <span class="number">5</span>, null_buffer.as_slice());
 
         <span class="macro">assert_eq!</span>(buffer.len(), <span class="number">13</span>);
-        <span class="kw">let </span>split = buffer.consume();
+        <span class="kw">let </span>split = std::mem::take(<span class="kw-2">&amp;mut </span>buffer);
 
         <span class="kw">let </span>array = split.into_array(<span class="prelude-val">Some</span>(null_buffer), <span class="kw-2">&amp;</span>dict_type).unwrap();
         <span class="macro">assert_eq!</span>(array.data_type(), <span class="kw-2">&amp;</span>dict_type);
@@ -669,7 +601,9 @@
             .unwrap()
             .extend_from_slice(<span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">0</span>, <span class="number">1</span>]);
 
-        <span class="kw">let </span>array = buffer.consume().into_array(<span class="prelude-val">None</span>, <span class="kw-2">&amp;</span>dict_type).unwrap();
+        <span class="kw">let </span>array = std::mem::take(<span class="kw-2">&amp;mut </span>buffer)
+            .into_array(<span class="prelude-val">None</span>, <span class="kw-2">&amp;</span>dict_type)
+            .unwrap();
         <span class="macro">assert_eq!</span>(array.data_type(), <span class="kw-2">&amp;</span>dict_type);
 
         <span class="kw">let </span>strings = cast(<span class="kw-2">&amp;</span>array, <span class="kw-2">&amp;</span>ArrowType::Utf8).unwrap();
@@ -680,7 +614,7 @@
         );
 
         <span class="comment">// Can recreate with new dictionary as keys empty
-        </span><span class="macro">assert!</span>(<span class="macro">matches!</span>(<span class="kw-2">&amp;</span>buffer, DictionaryBuffer::Dict { .. }));
+        </span><span class="macro">assert!</span>(<span class="macro">matches!</span>(<span class="kw-2">&amp;</span>buffer, DictionaryBuffer::Values { .. }));
         <span class="macro">assert_eq!</span>(buffer.len(), <span class="number">0</span>);
         <span class="kw">let </span>d3 = Arc::new(StringArray::from(<span class="macro">vec!</span>[<span class="string">"bongo"</span>])) <span class="kw">as </span>ArrayRef;
         buffer.as_keys(<span class="kw-2">&amp;</span>d3).unwrap().extend_from_slice(<span class="kw-2">&amp;</span>[<span class="number">0</span>, <span class="number">0</span>]);
diff --git a/src/parquet/arrow/buffer/offset_buffer.rs.html b/src/parquet/arrow/buffer/offset_buffer.rs.html
index 4255e08d6e..3e65374030 100644
--- a/src/parquet/arrow/buffer/offset_buffer.rs.html
+++ b/src/parquet/arrow/buffer/offset_buffer.rs.html
@@ -333,30 +333,6 @@
 <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>
 </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
@@ -375,8 +351,7 @@
 // under the License.
 
 </span><span class="kw">use </span><span class="kw">crate</span>::arrow::buffer::bit_util::iter_set_bits_rev;
-<span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::buffer::{BufferQueue, ValuesBuffer};
-<span class="kw">use </span><span class="kw">crate</span>::column::reader::decoder::ValuesBufferSlice;
+<span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::buffer::ValuesBuffer;
 <span class="kw">use </span><span class="kw">crate</span>::errors::{ParquetError, <span class="prelude-ty">Result</span>};
 <span class="kw">use </span>arrow_array::{make_array, ArrayRef, OffsetSizeTrait};
 <span class="kw">use </span>arrow_buffer::{ArrowNativeType, Buffer};
@@ -500,23 +475,6 @@
     }
 }
 
-<span class="kw">impl</span>&lt;I: OffsetSizeTrait&gt; BufferQueue <span class="kw">for </span>OffsetBuffer&lt;I&gt; {
-    <span class="kw">type </span>Output = <span class="self">Self</span>;
-    <span class="kw">type </span>Slice = <span class="self">Self</span>;
-
-    <span class="kw">fn </span>consume(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="self">Self</span>::Output {
-        std::mem::take(<span class="self">self</span>)
-    }
-
-    <span class="kw">fn </span>get_output_slice(<span class="kw-2">&amp;mut </span><span class="self">self</span>, _batch_size: usize) -&gt; <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice {
-        <span class="self">self
-    </span>}
-
-    <span class="kw">fn </span>truncate_buffer(<span class="kw-2">&amp;mut </span><span class="self">self</span>, len: usize) {
-        <span class="macro">assert_eq!</span>(<span class="self">self</span>.offsets.len(), len + <span class="number">1</span>);
-    }
-}
-
 <span class="kw">impl</span>&lt;I: OffsetSizeTrait&gt; ValuesBuffer <span class="kw">for </span>OffsetBuffer&lt;I&gt; {
     <span class="kw">fn </span>pad_nulls(
         <span class="kw-2">&amp;mut </span><span class="self">self</span>,
@@ -567,12 +525,6 @@
     }
 }
 
-<span class="kw">impl</span>&lt;I: OffsetSizeTrait&gt; ValuesBufferSlice <span class="kw">for </span>OffsetBuffer&lt;I&gt; {
-    <span class="kw">fn </span>capacity(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; usize {
-        usize::MAX
-    }
-}
-
 <span class="attr">#[cfg(test)]
 </span><span class="kw">mod </span>tests {
     <span class="kw">use super</span>::<span class="kw-2">*</span>;
@@ -609,7 +561,7 @@
         <span class="kw">for </span>v <span class="kw">in </span>[<span class="string">"hello"</span>, <span class="string">"world"</span>, <span class="string">"cupcakes"</span>, <span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>] {
             buffer.try_push(v.as_bytes(), <span class="bool-val">false</span>).unwrap()
         }
-        <span class="kw">let </span>split = buffer.consume();
+        <span class="kw">let </span>split = std::mem::take(<span class="kw-2">&amp;mut </span>buffer);
 
         <span class="kw">let </span>array = split.into_array(<span class="prelude-val">None</span>, ArrowType::Utf8);
         <span class="kw">let </span>strings = array.as_any().downcast_ref::&lt;StringArray&gt;().unwrap();
diff --git a/src/parquet/arrow/record_reader/buffer.rs.html b/src/parquet/arrow/record_reader/buffer.rs.html
index 5348a8b578..93c1a07198 100644
--- a/src/parquet/arrow/record_reader/buffer.rs.html
+++ b/src/parquet/arrow/record_reader/buffer.rs.html
@@ -62,67 +62,6 @@
 <a href="#62" id="62">62</a>
 <a href="#63" id="63">63</a>
 <a href="#64" id="64">64</a>
-<a href="#65" id="65">65</a>
-<a href="#66" id="66">66</a>
-<a href="#67" id="67">67</a>
-<a href="#68" id="68">68</a>
-<a href="#69" id="69">69</a>
-<a href="#70" id="70">70</a>
-<a href="#71" id="71">71</a>
-<a href="#72" id="72">72</a>
-<a href="#73" id="73">73</a>
-<a href="#74" id="74">74</a>
-<a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
-<a href="#77" id="77">77</a>
-<a href="#78" id="78">78</a>
-<a href="#79" id="79">79</a>
-<a href="#80" id="80">80</a>
-<a href="#81" id="81">81</a>
-<a href="#82" id="82">82</a>
-<a href="#83" id="83">83</a>
-<a href="#84" id="84">84</a>
-<a href="#85" id="85">85</a>
-<a href="#86" id="86">86</a>
-<a href="#87" id="87">87</a>
-<a href="#88" id="88">88</a>
-<a href="#89" id="89">89</a>
-<a href="#90" id="90">90</a>
-<a href="#91" id="91">91</a>
-<a href="#92" id="92">92</a>
-<a href="#93" id="93">93</a>
-<a href="#94" id="94">94</a>
-<a href="#95" id="95">95</a>
-<a href="#96" id="96">96</a>
-<a href="#97" id="97">97</a>
-<a href="#98" id="98">98</a>
-<a href="#99" id="99">99</a>
-<a href="#100" id="100">100</a>
-<a href="#101" id="101">101</a>
-<a href="#102" id="102">102</a>
-<a href="#103" id="103">103</a>
-<a href="#104" id="104">104</a>
-<a href="#105" id="105">105</a>
-<a href="#106" id="106">106</a>
-<a href="#107" id="107">107</a>
-<a href="#108" id="108">108</a>
-<a href="#109" id="109">109</a>
-<a href="#110" id="110">110</a>
-<a href="#111" id="111">111</a>
-<a href="#112" id="112">112</a>
-<a href="#113" id="113">113</a>
-<a href="#114" id="114">114</a>
-<a href="#115" id="115">115</a>
-<a href="#116" id="116">116</a>
-<a href="#117" id="117">117</a>
-<a href="#118" id="118">118</a>
-<a href="#119" id="119">119</a>
-<a href="#120" id="120">120</a>
-<a href="#121" id="121">121</a>
-<a href="#122" id="122">122</a>
-<a href="#123" id="123">123</a>
-<a href="#124" id="124">124</a>
-<a href="#125" id="125">125</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
@@ -142,70 +81,9 @@
 
 </span><span class="kw">use </span><span class="kw">crate</span>::arrow::buffer::bit_util::iter_set_bits_rev;
 
-<span class="doccomment">/// A buffer that supports writing new data to the end, and removing data from the front
-///
-/// Used by [RecordReader](`super::RecordReader`) to buffer up values before returning a
-/// potentially smaller number of values, corresponding to a whole number of semantic records
-</span><span class="kw">pub trait </span>BufferQueue: Sized {
-    <span class="kw">type </span>Output: Sized;
-
-    <span class="kw">type </span>Slice: <span class="question-mark">?</span>Sized;
-
-    <span class="doccomment">/// Consumes the contents of this [`BufferQueue`]
-    </span><span class="kw">fn </span>consume(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="self">Self</span>::Output;
-
-    <span class="doccomment">/// Returns a [`Self::Slice`] with at least `batch_size` capacity that can be used
-    /// to append data to the end of this [`BufferQueue`]
-    ///
-    /// NB: writes to the returned slice will not update the length of [`BufferQueue`]
-    /// instead a subsequent call should be made to [`BufferQueue::truncate_buffer`]
-    </span><span class="kw">fn </span>get_output_slice(<span class="kw-2">&amp;mut </span><span class="self">self</span>, batch_size: usize) -&gt; <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice;
-
-    <span class="doccomment">/// Sets the length of the [`BufferQueue`].
-    ///
-    /// Intended to be used in combination with [`BufferQueue::get_output_slice`]
-    ///
-    /// # Panics
-    ///
-    /// Implementations must panic if `len` is beyond the initialized length
-    ///
-    /// Implementations may panic if `set_len` is called with less than what has been written
-    ///
-    /// This distinction is to allow for implementations that return a default initialized
-    /// [BufferQueue::Slice`] which doesn't track capacity and length separately
-    ///
-    /// For example, [`BufferQueue`] returns a default-initialized `&amp;mut [T]`, and does not
-    /// track how much of this slice is actually written to by the caller. This is still
-    /// safe as the slice is default-initialized.
-    ///
-    </span><span class="kw">fn </span>truncate_buffer(<span class="kw-2">&amp;mut </span><span class="self">self</span>, len: usize);
-}
-
-<span class="kw">impl</span>&lt;T: Copy + Default&gt; BufferQueue <span class="kw">for </span>Vec&lt;T&gt; {
-    <span class="kw">type </span>Output = <span class="self">Self</span>;
-
-    <span class="kw">type </span>Slice = [T];
-
-    <span class="kw">fn </span>consume(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="self">Self</span>::Output {
-        std::mem::take(<span class="self">self</span>)
-    }
-
-    <span class="kw">fn </span>get_output_slice(<span class="kw-2">&amp;mut </span><span class="self">self</span>, batch_size: usize) -&gt; <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice {
-        <span class="kw">let </span>len = <span class="self">self</span>.len();
-        <span class="self">self</span>.resize(len + batch_size, T::default());
-        <span class="kw-2">&amp;mut </span><span class="self">self</span>[len..]
-    }
-
-    <span class="kw">fn </span>truncate_buffer(<span class="kw-2">&amp;mut </span><span class="self">self</span>, len: usize) {
-        <span class="macro">assert!</span>(len &lt;= <span class="self">self</span>.len());
-        <span class="self">self</span>.truncate(len)
-    }
-}
-
-<span class="doccomment">/// A [`BufferQueue`] capable of storing column values
-</span><span class="kw">pub trait </span>ValuesBuffer: BufferQueue {
-    <span class="doccomment">///
-    /// If a column contains nulls, more level data may be read than value data, as null
+<span class="doccomment">/// A buffer that supports padding with nulls
+</span><span class="kw">pub trait </span>ValuesBuffer: Default {
+    <span class="doccomment">/// If a column contains nulls, more level data may be read than value data, as null
     /// values are not encoded. Therefore, first the levels data is read, the null count
     /// determined, and then the corresponding number of values read to a [`ValuesBuffer`].
     ///
@@ -236,7 +114,7 @@
         levels_read: usize,
         valid_mask: <span class="kw-2">&amp;</span>[u8],
     ) {
-        <span class="macro">assert!</span>(<span class="self">self</span>.len() &gt;= read_offset + levels_read);
+        <span class="self">self</span>.resize(read_offset + levels_read, T::default());
 
         <span class="kw">let </span>values_range = read_offset..read_offset + values_read;
         <span class="kw">for </span>(value_pos, level_pos) <span class="kw">in </span>values_range.rev().zip(iter_set_bits_rev(valid_mask)) {
diff --git a/src/parquet/arrow/record_reader/definition_levels.rs.html b/src/parquet/arrow/record_reader/definition_levels.rs.html
index 05d2534053..5afce90549 100644
--- a/src/parquet/arrow/record_reader/definition_levels.rs.html
+++ b/src/parquet/arrow/record_reader/definition_levels.rs.html
@@ -445,21 +445,6 @@
 <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>
 </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
@@ -477,9 +462,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-</span><span class="kw">use </span>std::ops::Range;
-
-<span class="kw">use </span>arrow_array::builder::BooleanBufferBuilder;
+</span><span class="kw">use </span>arrow_array::builder::BooleanBufferBuilder;
 <span class="kw">use </span>arrow_buffer::bit_chunk_iterator::UnalignedBitChunk;
 <span class="kw">use </span>arrow_buffer::Buffer;
 <span class="kw">use </span>bytes::Bytes;
@@ -487,7 +470,7 @@
 <span class="kw">use </span><span class="kw">crate</span>::arrow::buffer::bit_util::count_set_bits;
 <span class="kw">use </span><span class="kw">crate</span>::basic::Encoding;
 <span class="kw">use </span><span class="kw">crate</span>::column::reader::decoder::{
-    ColumnLevelDecoder, DefinitionLevelDecoder, DefinitionLevelDecoderImpl, LevelsBufferSlice,
+    ColumnLevelDecoder, DefinitionLevelDecoder, DefinitionLevelDecoderImpl,
 };
 <span class="kw">use </span><span class="kw">crate</span>::errors::{ParquetError, <span class="prelude-ty">Result</span>};
 <span class="kw">use </span><span class="kw">crate</span>::schema::types::ColumnDescPtr;
@@ -547,18 +530,13 @@
     }
 
     <span class="doccomment">/// Returns the built level data
-    </span><span class="kw">pub fn </span>consume_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;Buffer&gt; {
+    </span><span class="kw">pub fn </span>consume_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt; {
         <span class="kw">match </span><span class="kw-2">&amp;mut </span><span class="self">self</span>.inner {
-            BufferInner::Full { levels, .. } =&gt; <span class="prelude-val">Some</span>(Buffer::from_vec(std::mem::take(levels))),
+            BufferInner::Full { levels, .. } =&gt; <span class="prelude-val">Some</span>(std::mem::take(levels)),
             BufferInner::Mask { .. } =&gt; <span class="prelude-val">None</span>,
         }
     }
 
-    <span class="kw">pub fn </span>set_len(<span class="kw-2">&amp;mut </span><span class="self">self</span>, len: usize) {
-        <span class="macro">assert_eq!</span>(<span class="self">self</span>.nulls().len(), len);
-        <span class="self">self</span>.len = len;
-    }
-
     <span class="doccomment">/// Returns the built null bitmask
     </span><span class="kw">pub fn </span>consume_bitmask(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; Buffer {
         <span class="self">self</span>.len = <span class="number">0</span>;
@@ -576,18 +554,6 @@
     }
 }
 
-<span class="kw">impl </span>LevelsBufferSlice <span class="kw">for </span>DefinitionLevelBuffer {
-    <span class="kw">fn </span>capacity(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; usize {
-        usize::MAX
-    }
-
-    <span class="kw">fn </span>count_nulls(<span class="kw-2">&amp;</span><span class="self">self</span>, range: Range&lt;usize&gt;, _max_level: i16) -&gt; usize {
-        <span class="kw">let </span>total_count = range.end - range.start;
-        <span class="kw">let </span>range = range.start + <span class="self">self</span>.len..range.end + <span class="self">self</span>.len;
-        total_count - count_set_bits(<span class="self">self</span>.nulls().as_slice(), range)
-    }
-}
-
 <span class="kw">enum </span>MaybePacked {
     Packed(PackedDecoder),
     Fallback(DefinitionLevelDecoderImpl),
@@ -610,7 +576,7 @@
 }
 
 <span class="kw">impl </span>ColumnLevelDecoder <span class="kw">for </span>DefinitionLevelBufferDecoder {
-    <span class="kw">type </span>Slice = DefinitionLevelBuffer;
+    <span class="kw">type </span>Buffer = DefinitionLevelBuffer;
 
     <span class="kw">fn </span>set_data(<span class="kw-2">&amp;mut </span><span class="self">self</span>, encoding: Encoding, data: Bytes) {
         <span class="kw">match </span><span class="kw-2">&amp;mut </span><span class="self">self</span>.decoder {
@@ -621,7 +587,11 @@
 }
 
 <span class="kw">impl </span>DefinitionLevelDecoder <span class="kw">for </span>DefinitionLevelBufferDecoder {
-    <span class="kw">fn </span>read_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>, writer: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice, range: Range&lt;usize&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
+    <span class="kw">fn </span>read_def_levels(
+        <span class="kw-2">&amp;mut </span><span class="self">self</span>,
+        writer: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer,
+        num_levels: usize,
+    ) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt; {
         <span class="kw">match </span>(<span class="kw-2">&amp;mut </span>writer.inner, <span class="kw-2">&amp;mut </span><span class="self">self</span>.decoder) {
             (
                 BufferInner::Full {
@@ -632,33 +602,33 @@
                 MaybePacked::Fallback(decoder),
             ) =&gt; {
                 <span class="macro">assert_eq!</span>(<span class="self">self</span>.max_level, <span class="kw-2">*</span>max_level);
-                <span class="macro">assert_eq!</span>(range.start + writer.len, nulls.len());
 
-                levels.resize(range.end + writer.len, <span class="number">0</span>);
-
-                <span class="kw">let </span>slice = <span class="kw-2">&amp;mut </span>levels[writer.len..];
-                <span class="kw">let </span>levels_read = decoder.read_def_levels(slice, range.clone())<span class="question-mark">?</span>;
+                <span class="kw">let </span>start = levels.len();
+                <span class="kw">let </span>(values_read, levels_read) = decoder.read_def_levels(levels, num_levels)<span class="question-mark">?</span>;
 
                 nulls.reserve(levels_read);
-                <span class="kw">for </span>i <span class="kw">in </span><span class="kw-2">&amp;</span>slice[range.start..range.start + levels_read] {
-                    nulls.append(i == max_level)
+                <span class="kw">for </span>i <span class="kw">in </span><span class="kw-2">&amp;</span>levels[start..] {
+                    nulls.append(i == max_level);
                 }
 
-                <span class="prelude-val">Ok</span>(levels_read)
+                <span class="prelude-val">Ok</span>((values_read, levels_read))
             }
             (BufferInner::Mask { nulls }, MaybePacked::Packed(decoder)) =&gt; {
                 <span class="macro">assert_eq!</span>(<span class="self">self</span>.max_level, <span class="number">1</span>);
-                <span class="macro">assert_eq!</span>(range.start + writer.len, nulls.len());
 
-                decoder.read(nulls, range.end - range.start)
+                <span class="kw">let </span>start = nulls.len();
+                <span class="kw">let </span>levels_read = decoder.read(nulls, num_levels)<span class="question-mark">?</span>;
+
+                <span class="kw">let </span>values_read = count_set_bits(nulls.as_slice(), start..start + levels_read);
+                <span class="prelude-val">Ok</span>((values_read, levels_read))
             }
             <span class="kw">_ </span>=&gt; <span class="macro">unreachable!</span>(<span class="string">"inconsistent null mask"</span>),
         }
     }
 
-    <span class="kw">fn </span>skip_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>, num_levels: usize, max_def_level: i16) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt; {
+    <span class="kw">fn </span>skip_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>, num_levels: usize) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt; {
         <span class="kw">match </span><span class="kw-2">&amp;mut </span><span class="self">self</span>.decoder {
-            MaybePacked::Fallback(decoder) =&gt; decoder.skip_def_levels(num_levels, max_def_level),
+            MaybePacked::Fallback(decoder) =&gt; decoder.skip_def_levels(num_levels),
             MaybePacked::Packed(decoder) =&gt; decoder.skip(num_levels),
         }
     }
diff --git a/src/parquet/arrow/record_reader/mod.rs.html b/src/parquet/arrow/record_reader/mod.rs.html
index e14dc87382..ac7b772c14 100644
--- a/src/parquet/arrow/record_reader/mod.rs.html
+++ b/src/parquet/arrow/record_reader/mod.rs.html
@@ -786,40 +786,6 @@
 <a href="#786" id="786">786</a>
 <a href="#787" id="787">787</a>
 <a href="#788" id="788">788</a>
-<a href="#789" id="789">789</a>
-<a href="#790" id="790">790</a>
-<a href="#791" id="791">791</a>
-<a href="#792" id="792">792</a>
-<a href="#793" id="793">793</a>
-<a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
-<a href="#796" id="796">796</a>
-<a href="#797" id="797">797</a>
-<a href="#798" id="798">798</a>
-<a href="#799" id="799">799</a>
-<a href="#800" id="800">800</a>
-<a href="#801" id="801">801</a>
-<a href="#802" id="802">802</a>
-<a href="#803" id="803">803</a>
-<a href="#804" id="804">804</a>
-<a href="#805" id="805">805</a>
-<a href="#806" id="806">806</a>
-<a href="#807" id="807">807</a>
-<a href="#808" id="808">808</a>
-<a href="#809" id="809">809</a>
-<a href="#810" id="810">810</a>
-<a href="#811" id="811">811</a>
-<a href="#812" id="812">812</a>
-<a href="#813" id="813">813</a>
-<a href="#814" id="814">814</a>
-<a href="#815" id="815">815</a>
-<a href="#816" id="816">816</a>
-<a href="#817" id="817">817</a>
-<a href="#818" id="818">818</a>
-<a href="#819" id="819">819</a>
-<a href="#820" id="820">820</a>
-<a href="#821" id="821">821</a>
-<a href="#822" id="822">822</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
@@ -840,7 +806,7 @@
 </span><span class="kw">use </span>arrow_buffer::Buffer;
 
 <span class="kw">use </span><span class="kw">crate</span>::arrow::record_reader::{
-    buffer::{BufferQueue, ValuesBuffer},
+    buffer::ValuesBuffer,
     definition_levels::{DefinitionLevelBuffer, DefinitionLevelBufferDecoder},
 };
 <span class="kw">use </span><span class="kw">crate</span>::column::reader::decoder::RepetitionLevelDecoderImpl;
@@ -884,28 +850,18 @@
 
 <span class="kw">impl</span>&lt;V, CV&gt; GenericRecordReader&lt;V, CV&gt;
 <span class="kw">where
-    </span>V: ValuesBuffer + Default,
-    CV: ColumnValueDecoder&lt;Slice = V::Slice&gt;,
+    </span>V: ValuesBuffer,
+    CV: ColumnValueDecoder&lt;Buffer = V&gt;,
 {
     <span class="doccomment">/// Create a new [`GenericRecordReader`]
     </span><span class="kw">pub fn </span>new(desc: ColumnDescPtr) -&gt; <span class="self">Self </span>{
-        <span class="self">Self</span>::new_with_records(desc, V::default())
-    }
-}
-
-<span class="kw">impl</span>&lt;V, CV&gt; GenericRecordReader&lt;V, CV&gt;
-<span class="kw">where
-    </span>V: ValuesBuffer,
-    CV: ColumnValueDecoder&lt;Slice = V::Slice&gt;,
-{
-    <span class="kw">pub fn </span>new_with_records(desc: ColumnDescPtr, records: V) -&gt; <span class="self">Self </span>{
         <span class="kw">let </span>def_levels = (desc.max_def_level() &gt; <span class="number">0</span>)
             .then(|| DefinitionLevelBuffer::new(<span class="kw-2">&amp;</span>desc, packed_null_mask(<span class="kw-2">&amp;</span>desc)));
 
         <span class="kw">let </span>rep_levels = (desc.max_rep_level() &gt; <span class="number">0</span>).then(Vec::new);
 
         <span class="self">Self </span>{
-            values: records,
+            values: V::default(),
             def_levels,
             rep_levels,
             column_reader: <span class="prelude-val">None</span>,
@@ -988,22 +944,20 @@
     /// The implementation has side effects. It will create a new buffer to hold those
     /// definition level values that have already been read into memory but not counted
     /// as record values, e.g. those from `self.num_values` to `self.values_written`.
-    </span><span class="kw">pub fn </span>consume_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;Buffer&gt; {
+    </span><span class="kw">pub fn </span>consume_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt; {
         <span class="self">self</span>.def_levels.as_mut().and_then(|x| x.consume_levels())
     }
 
     <span class="doccomment">/// Return repetition level data.
     /// The side effect is similar to `consume_def_levels`.
-    </span><span class="kw">pub fn </span>consume_rep_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;Buffer&gt; {
-        <span class="self">self</span>.rep_levels
-            .as_mut()
-            .map(|x| Buffer::from_vec(x.consume()))
+    </span><span class="kw">pub fn </span>consume_rep_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;Vec&lt;i16&gt;&gt; {
+        <span class="self">self</span>.rep_levels.as_mut().map(std::mem::take)
     }
 
     <span class="doccomment">/// Returns currently stored buffer data.
     /// The side effect is similar to `consume_def_levels`.
-    </span><span class="kw">pub fn </span>consume_record_data(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; V::Output {
-        <span class="self">self</span>.values.consume()
+    </span><span class="kw">pub fn </span>consume_record_data(<span class="kw-2">&amp;mut </span><span class="self">self</span>) -&gt; V {
+        std::mem::take(<span class="kw-2">&amp;mut </span><span class="self">self</span>.values)
     }
 
     <span class="doccomment">/// Returns currently stored null bitmap data.
@@ -1029,18 +983,13 @@
 
     <span class="doccomment">/// Try to read one batch of data returning the number of records read
     </span><span class="kw">fn </span>read_one_batch(<span class="kw-2">&amp;mut </span><span class="self">self</span>, batch_size: usize) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
-        <span class="kw">let </span>rep_levels = <span class="self">self
-            </span>.rep_levels
-            .as_mut()
-            .map(|levels| levels.get_output_slice(batch_size));
-        <span class="kw">let </span>def_levels = <span class="self">self</span>.def_levels.as_mut();
-        <span class="kw">let </span>values = <span class="self">self</span>.values.get_output_slice(batch_size);
-
-        <span class="kw">let </span>(records_read, values_read, levels_read) = <span class="self">self
-            </span>.column_reader
-            .as_mut()
-            .unwrap()
-            .read_records(batch_size, def_levels, rep_levels, values)<span class="question-mark">?</span>;
+        <span class="kw">let </span>(records_read, values_read, levels_read) =
+            <span class="self">self</span>.column_reader.as_mut().unwrap().read_records(
+                batch_size,
+                <span class="self">self</span>.def_levels.as_mut(),
+                <span class="self">self</span>.rep_levels.as_mut(),
+                <span class="kw-2">&amp;mut </span><span class="self">self</span>.values,
+            )<span class="question-mark">?</span>;
 
         <span class="kw">if </span>values_read &lt; levels_read {
             <span class="kw">let </span>def_levels = <span class="self">self</span>.def_levels.as_ref().ok_or_else(|| {
@@ -1057,13 +1006,6 @@
 
         <span class="self">self</span>.num_records += records_read;
         <span class="self">self</span>.num_values += levels_read;
-        <span class="self">self</span>.values.truncate_buffer(<span class="self">self</span>.num_values);
-        <span class="kw">if let </span><span class="prelude-val">Some</span>(<span class="kw-2">ref mut </span>buf) = <span class="self">self</span>.rep_levels {
-            buf.truncate_buffer(<span class="self">self</span>.num_values)
-        };
-        <span class="kw">if let </span><span class="prelude-val">Some</span>(<span class="kw-2">ref mut </span>buf) = <span class="self">self</span>.def_levels {
-            buf.set_len(<span class="self">self</span>.num_values)
-        };
         <span class="prelude-val">Ok</span>(records_read)
     }
 }
@@ -1080,7 +1022,6 @@
     <span class="kw">use </span>std::sync::Arc;
 
     <span class="kw">use </span>arrow::buffer::Buffer;
-    <span class="kw">use </span>arrow_array::builder::Int16BufferBuilder;
 
     <span class="kw">use </span><span class="kw">crate</span>::basic::Encoding;
     <span class="kw">use </span><span class="kw">crate</span>::data_type::Int32Type;
@@ -1239,11 +1180,8 @@
         }
 
         <span class="comment">// Verify result def levels
-        </span><span class="kw">let </span><span class="kw-2">mut </span>bb = Int16BufferBuilder::new(<span class="number">7</span>);
-        bb.append_slice(<span class="kw-2">&amp;</span>[<span class="number">1i16</span>, <span class="number">2i16</span>, <span class="number">0i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">0i16</span>, <span class="number">2i16</span>]);
-        <span class="kw">let </span>expected_def_levels = bb.finish();
-        <span class="macro">assert_eq!</span>(
-            <span class="prelude-val">Some</span>(expected_def_levels),
+        </span><span class="macro">assert_eq!</span>(
+            <span class="prelude-val">Some</span>(<span class="macro">vec!</span>[<span class="number">1i16</span>, <span class="number">2i16</span>, <span class="number">0i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">0i16</span>, <span class="number">2i16</span>]),
             record_reader.consume_def_levels()
         );
 
@@ -1348,11 +1286,8 @@
         }
 
         <span class="comment">// Verify result def levels
-        </span><span class="kw">let </span><span class="kw-2">mut </span>bb = Int16BufferBuilder::new(<span class="number">9</span>);
-        bb.append_slice(<span class="kw-2">&amp;</span>[<span class="number">2i16</span>, <span class="number">0i16</span>, <span class="number">1i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>]);
-        <span class="kw">let </span>expected_def_levels = bb.finish();
-        <span class="macro">assert_eq!</span>(
-            <span class="prelude-val">Some</span>(expected_def_levels),
+        </span><span class="macro">assert_eq!</span>(
+            <span class="prelude-val">Some</span>(<span class="macro">vec!</span>[<span class="number">2i16</span>, <span class="number">0i16</span>, <span class="number">1i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>]),
             record_reader.consume_def_levels()
         );
 
@@ -1614,11 +1549,8 @@
         }
 
         <span class="comment">// Verify result def levels
-        </span><span class="kw">let </span><span class="kw-2">mut </span>bb = Int16BufferBuilder::new(<span class="number">7</span>);
-        bb.append_slice(<span class="kw-2">&amp;</span>[<span class="number">0i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>]);
-        <span class="kw">let </span>expected_def_levels = bb.finish();
-        <span class="macro">assert_eq!</span>(
-            <span class="prelude-val">Some</span>(expected_def_levels),
+        </span><span class="macro">assert_eq!</span>(
+            <span class="prelude-val">Some</span>(<span class="macro">vec!</span>[<span class="number">0i16</span>, <span class="number">2i16</span>, <span class="number">2i16</span>]),
             record_reader.consume_def_levels()
         );
 
diff --git a/src/parquet/column/reader.rs.html b/src/parquet/column/reader.rs.html
index 1676bde6c6..c804e6fe06 100644
--- a/src/parquet/column/reader.rs.html
+++ b/src/parquet/column/reader.rs.html
@@ -1342,102 +1342,6 @@
 <a href="#1342" id="1342">1342</a>
 <a href="#1343" id="1343">1343</a>
 <a href="#1344" id="1344">1344</a>
-<a href="#1345" id="1345">1345</a>
-<a href="#1346" id="1346">1346</a>
-<a href="#1347" id="1347">1347</a>
-<a href="#1348" id="1348">1348</a>
-<a href="#1349" id="1349">1349</a>
-<a href="#1350" id="1350">1350</a>
-<a href="#1351" id="1351">1351</a>
-<a href="#1352" id="1352">1352</a>
-<a href="#1353" id="1353">1353</a>
-<a href="#1354" id="1354">1354</a>
-<a href="#1355" id="1355">1355</a>
-<a href="#1356" id="1356">1356</a>
-<a href="#1357" id="1357">1357</a>
-<a href="#1358" id="1358">1358</a>
-<a href="#1359" id="1359">1359</a>
-<a href="#1360" id="1360">1360</a>
-<a href="#1361" id="1361">1361</a>
-<a href="#1362" id="1362">1362</a>
-<a href="#1363" id="1363">1363</a>
-<a href="#1364" id="1364">1364</a>
-<a href="#1365" id="1365">1365</a>
-<a href="#1366" id="1366">1366</a>
-<a href="#1367" id="1367">1367</a>
-<a href="#1368" id="1368">1368</a>
-<a href="#1369" id="1369">1369</a>
-<a href="#1370" id="1370">1370</a>
-<a href="#1371" id="1371">1371</a>
-<a href="#1372" id="1372">1372</a>
-<a href="#1373" id="1373">1373</a>
-<a href="#1374" id="1374">1374</a>
-<a href="#1375" id="1375">1375</a>
-<a href="#1376" id="1376">1376</a>
-<a href="#1377" id="1377">1377</a>
-<a href="#1378" id="1378">1378</a>
-<a href="#1379" id="1379">1379</a>
-<a href="#1380" id="1380">1380</a>
-<a href="#1381" id="1381">1381</a>
-<a href="#1382" id="1382">1382</a>
-<a href="#1383" id="1383">1383</a>
-<a href="#1384" id="1384">1384</a>
-<a href="#1385" id="1385">1385</a>
-<a href="#1386" id="1386">1386</a>
-<a href="#1387" id="1387">1387</a>
-<a href="#1388" id="1388">1388</a>
-<a href="#1389" id="1389">1389</a>
-<a href="#1390" id="1390">1390</a>
-<a href="#1391" id="1391">1391</a>
-<a href="#1392" id="1392">1392</a>
-<a href="#1393" id="1393">1393</a>
-<a href="#1394" id="1394">1394</a>
-<a href="#1395" id="1395">1395</a>
-<a href="#1396" id="1396">1396</a>
-<a href="#1397" id="1397">1397</a>
-<a href="#1398" id="1398">1398</a>
-<a href="#1399" id="1399">1399</a>
-<a href="#1400" id="1400">1400</a>
-<a href="#1401" id="1401">1401</a>
-<a href="#1402" id="1402">1402</a>
-<a href="#1403" id="1403">1403</a>
-<a href="#1404" id="1404">1404</a>
-<a href="#1405" id="1405">1405</a>
-<a href="#1406" id="1406">1406</a>
-<a href="#1407" id="1407">1407</a>
-<a href="#1408" id="1408">1408</a>
-<a href="#1409" id="1409">1409</a>
-<a href="#1410" id="1410">1410</a>
-<a href="#1411" id="1411">1411</a>
-<a href="#1412" id="1412">1412</a>
-<a href="#1413" id="1413">1413</a>
-<a href="#1414" id="1414">1414</a>
-<a href="#1415" id="1415">1415</a>
-<a href="#1416" id="1416">1416</a>
-<a href="#1417" id="1417">1417</a>
-<a href="#1418" id="1418">1418</a>
-<a href="#1419" id="1419">1419</a>
-<a href="#1420" id="1420">1420</a>
-<a href="#1421" id="1421">1421</a>
-<a href="#1422" id="1422">1422</a>
-<a href="#1423" id="1423">1423</a>
-<a href="#1424" id="1424">1424</a>
-<a href="#1425" id="1425">1425</a>
-<a href="#1426" id="1426">1426</a>
-<a href="#1427" id="1427">1427</a>
-<a href="#1428" id="1428">1428</a>
-<a href="#1429" id="1429">1429</a>
-<a href="#1430" id="1430">1430</a>
-<a href="#1431" id="1431">1431</a>
-<a href="#1432" id="1432">1432</a>
-<a href="#1433" id="1433">1433</a>
-<a href="#1434" id="1434">1434</a>
-<a href="#1435" id="1435">1435</a>
-<a href="#1436" id="1436">1436</a>
-<a href="#1437" id="1437">1437</a>
-<a href="#1438" id="1438">1438</a>
-<a href="#1439" id="1439">1439</a>
-<a href="#1440" id="1440">1440</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
@@ -1463,7 +1367,7 @@
 <span class="kw">use </span><span class="kw">crate</span>::basic::<span class="kw-2">*</span>;
 <span class="kw">use </span><span class="kw">crate</span>::column::reader::decoder::{
     ColumnValueDecoder, ColumnValueDecoderImpl, DefinitionLevelDecoder, DefinitionLevelDecoderImpl,
-    LevelsBufferSlice, RepetitionLevelDecoder, RepetitionLevelDecoderImpl, ValuesBufferSlice,
+    RepetitionLevelDecoder, RepetitionLevelDecoderImpl,
 };
 <span class="kw">use </span><span class="kw">crate</span>::data_type::<span class="kw-2">*</span>;
 <span class="kw">use </span><span class="kw">crate</span>::errors::{ParquetError, <span class="prelude-ty">Result</span>};
@@ -1633,9 +1537,9 @@
     </span><span class="kw">pub fn </span>read_batch(
         <span class="kw-2">&amp;mut </span><span class="self">self</span>,
         batch_size: usize,
-        def_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>D::Slice&gt;,
-        rep_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>R::Slice&gt;,
-        values: <span class="kw-2">&amp;mut </span>V::Slice,
+        def_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>D::Buffer&gt;,
+        rep_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>R::Buffer&gt;,
+        values: <span class="kw-2">&amp;mut </span>V::Buffer,
     ) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt; {
         <span class="kw">let </span>(<span class="kw">_</span>, values, levels) = <span class="self">self</span>.read_records(batch_size, def_levels, rep_levels, values)<span class="question-mark">?</span>;
 
@@ -1659,41 +1563,26 @@
     </span><span class="kw">pub fn </span>read_records(
         <span class="kw-2">&amp;mut </span><span class="self">self</span>,
         max_records: usize,
-        <span class="kw-2">mut </span>def_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>D::Slice&gt;,
-        <span class="kw-2">mut </span>rep_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>R::Slice&gt;,
-        values: <span class="kw-2">&amp;mut </span>V::Slice,
+        <span class="kw-2">mut </span>def_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>D::Buffer&gt;,
+        <span class="kw-2">mut </span>rep_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>R::Buffer&gt;,
+        values: <span class="kw-2">&amp;mut </span>V::Buffer,
     ) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize, usize)&gt; {
-        <span class="kw">let </span><span class="kw-2">mut </span>max_levels = values.capacity().min(max_records);
-        <span class="kw">if let </span><span class="prelude-val">Some</span>(<span class="kw-2">ref </span>levels) = def_levels {
-            max_levels = max_levels.min(levels.capacity());
-        }
-        <span class="kw">if let </span><span class="prelude-val">Some</span>(<span class="kw-2">ref </span>levels) = rep_levels {
-            max_levels = max_levels.min(levels.capacity())
-        }
-
         <span class="kw">let </span><span class="kw-2">mut </span>total_records_read = <span class="number">0</span>;
         <span class="kw">let </span><span class="kw-2">mut </span>total_levels_read = <span class="number">0</span>;
         <span class="kw">let </span><span class="kw-2">mut </span>total_values_read = <span class="number">0</span>;
 
-        <span class="kw">while </span>total_records_read &lt; max_records
-            &amp;&amp; total_levels_read &lt; max_levels
-            &amp;&amp; <span class="self">self</span>.has_next()<span class="question-mark">?
-        </span>{
+        <span class="kw">while </span>total_records_read &lt; max_records &amp;&amp; <span class="self">self</span>.has_next()<span class="question-mark">? </span>{
             <span class="kw">let </span>remaining_records = max_records - total_records_read;
             <span class="kw">let </span>remaining_levels = <span class="self">self</span>.num_buffered_values - <span class="self">self</span>.num_decoded_values;
-            <span class="kw">let </span>levels_to_read = remaining_levels.min(max_levels - total_levels_read);
 
-            <span class="kw">let </span>(records_read, levels_read) = <span class="kw">match </span><span class="self">self</span>.rep_level_decoder.as_mut() {
+            <span class="kw">let </span>(records_read, levels_to_read) = <span class="kw">match </span><span class="self">self</span>.rep_level_decoder.as_mut() {
                 <span class="prelude-val">Some</span>(reader) =&gt; {
                     <span class="kw">let </span>out = rep_levels
                         .as_mut()
                         .ok_or_else(|| <span class="macro">general_err!</span>(<span class="string">"must specify repetition levels"</span>))<span class="question-mark">?</span>;
 
-                    <span class="kw">let </span>(<span class="kw-2">mut </span>records_read, levels_read) = reader.read_rep_levels(
-                        out,
-                        total_levels_read..total_levels_read + levels_to_read,
-                        remaining_records,
-                    )<span class="question-mark">?</span>;
+                    <span class="kw">let </span>(<span class="kw-2">mut </span>records_read, levels_read) =
+                        reader.read_rep_levels(out, remaining_records, remaining_levels)<span class="question-mark">?</span>;
 
                     <span class="kw">if </span>levels_read == remaining_levels &amp;&amp; <span class="self">self</span>.has_record_delimiter {
                         <span class="comment">// Reached end of page, which implies records_read &lt; remaining_records
@@ -1704,7 +1593,7 @@
                     (records_read, levels_read)
                 }
                 <span class="prelude-val">None </span>=&gt; {
-                    <span class="kw">let </span>min = remaining_records.min(levels_to_read);
+                    <span class="kw">let </span>min = remaining_records.min(remaining_levels);
                     (min, min)
                 }
             };
@@ -1715,26 +1604,18 @@
                         .as_mut()
                         .ok_or_else(|| <span class="macro">general_err!</span>(<span class="string">"must specify definition levels"</span>))<span class="question-mark">?</span>;
 
-                    <span class="kw">let </span>read = reader
-                        .read_def_levels(out, total_levels_read..total_levels_read + levels_read)<span class="question-mark">?</span>;
+                    <span class="kw">let </span>(values_read, levels_read) = reader.read_def_levels(out, levels_to_read)<span class="question-mark">?</span>;
 
-                    <span class="kw">if </span>read != levels_read {
+                    <span class="kw">if </span>levels_read != levels_to_read {
                         <span class="kw">return </span><span class="prelude-val">Err</span>(<span class="macro">general_err!</span>(<span class="string">"insufficient definition levels read from column - expected {rep_levels}, got {read}"</span>));
                     }
 
-                    <span class="kw">let </span>null_count = out.count_nulls(
-                        total_levels_read..total_levels_read + read,
-                        <span class="self">self</span>.descr.max_def_level(),
-                    );
-                    levels_read - null_count
+                    values_read
                 }
-                <span class="prelude-val">None </span>=&gt; levels_read,
+                <span class="prelude-val">None </span>=&gt; levels_to_read,
             };
 
-            <span class="kw">let </span>values_read = <span class="self">self</span>.values_decoder.read(
-                values,
-                total_values_read..total_values_read + values_to_read,
-            )<span class="question-mark">?</span>;
+            <span class="kw">let </span>values_read = <span class="self">self</span>.values_decoder.read(values, values_to_read)<span class="question-mark">?</span>;
 
             <span class="kw">if </span>values_read != values_to_read {
                 <span class="kw">return </span><span class="prelude-val">Err</span>(<span class="macro">general_err!</span>(
@@ -1742,9 +1623,9 @@
                 ));
             }
 
-            <span class="self">self</span>.num_decoded_values += levels_read;
+            <span class="self">self</span>.num_decoded_values += levels_to_read;
             total_records_read += records_read;
-            total_levels_read += levels_read;
+            total_levels_read += levels_to_read;
             total_values_read += values_read;
         }
 
@@ -1829,9 +1710,7 @@
             }
 
             <span class="kw">let </span>(values_read, def_levels_read) = <span class="kw">match </span><span class="self">self</span>.def_level_decoder.as_mut() {
-                <span class="prelude-val">Some</span>(decoder) =&gt; {
-                    decoder.skip_def_levels(rep_levels_read, <span class="self">self</span>.descr.max_def_level())<span class="question-mark">?
-                </span>}
+                <span class="prelude-val">Some</span>(decoder) =&gt; decoder.skip_def_levels(rep_levels_read)<span class="question-mark">?</span>,
                 <span class="prelude-val">None </span>=&gt; (rep_levels_read, rep_levels_read),
             };
 
@@ -2456,34 +2335,22 @@
 
     <span class="attr">#[test]
     </span><span class="kw">fn </span>test_read_batch_values_only() {
-        test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">10</span>], <span class="prelude-val">None</span>, <span class="prelude-val">None</span>); <span class="comment">// &lt; batch_size
-        </span>test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">16</span>], <span class="prelude-val">None</span>, <span class="prelude-val">None</span>); <span class="comment">// == batch_size
-        </span>test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">51</span>], <span class="prelude-val">None</span>, <span class="prelude-val">None</span>); <span class="comment">// &gt; batch_size
-    </span>}
+        test_read_batch_int32(<span class="number">16</span>, <span class="number">0</span>, <span class="number">0</span>);
+    }
 
     <span class="attr">#[test]
     </span><span class="kw">fn </span>test_read_batch_values_def_levels() {
-        test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">10</span>], <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">10</span>]), <span class="prelude-val">None</span>);
-        test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">16</span>], <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">16</span>]), <span class="prelude-val">None</span>);
-        test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">51</span>], <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">51</span>]), <span class="prelude-val">None</span>);
+        test_read_batch_int32(<span class="number">16</span>, MAX_DEF_LEVEL, <span class="number">0</span>);
     }
 
     <span class="attr">#[test]
     </span><span class="kw">fn </span>test_read_batch_values_rep_levels() {
-        test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">10</span>], <span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">10</span>]));
-        test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">16</span>], <span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">16</span>]));
-        test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">51</span>], <span class="prelude-val">None</span>, <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">51</span>]));
-    }
-
-    <span class="attr">#[test]
-    </span><span class="kw">fn </span>test_read_batch_different_buf_sizes() {
-        test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">8</span>], <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">9</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">7</span>]));
-        test_read_batch_int32(<span class="number">16</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">1</span>], <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">9</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">3</span>]));
+        test_read_batch_int32(<span class="number">16</span>, <span class="number">0</span>, MAX_REP_LEVEL);
     }
 
     <span class="attr">#[test]
     </span><span class="kw">fn </span>test_read_batch_values_def_rep_levels() {
-        test_read_batch_int32(<span class="number">128</span>, <span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">128</span>], <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">128</span>]), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>[<span class="number">0</span>; <span class="number">128</span>]));
+        test_read_batch_int32(<span class="number">128</span>, MAX_DEF_LEVEL, MAX_REP_LEVEL);
     }
 
     <span class="attr">#[test]
@@ -2505,9 +2372,6 @@
         <span class="kw">let </span>num_pages = <span class="number">2</span>;
         <span class="kw">let </span>num_levels = <span class="number">4</span>;
         <span class="kw">let </span>batch_size = <span class="number">5</span>;
-        <span class="kw">let </span>values = <span class="kw-2">&amp;mut </span><span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">7</span>];
-        <span class="kw">let </span>def_levels = <span class="kw-2">&amp;mut </span><span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">7</span>];
-        <span class="kw">let </span>rep_levels = <span class="kw-2">&amp;mut </span><span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">7</span>];
 
         <span class="kw">let </span><span class="kw-2">mut </span>tester = ColumnReaderTester::&lt;Int32Type&gt;::new();
         tester.test_read_batch(
@@ -2518,9 +2382,6 @@
             batch_size,
             std::i32::MIN,
             std::i32::MAX,
-            values,
-            <span class="prelude-val">Some</span>(def_levels),
-            <span class="prelude-val">Some</span>(rep_levels),
             <span class="bool-val">false</span>,
         );
     }
@@ -2593,24 +2454,8 @@
     //
     // This is a high level wrapper on `ColumnReaderTester` that allows us to specify some
     // boilerplate code for setting up definition/repetition levels and column descriptor.
-    </span><span class="kw">fn </span>test_read_batch_int32(
-        batch_size: usize,
-        values: <span class="kw-2">&amp;mut </span>[i32],
-        def_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>[i16]&gt;,
-        rep_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>[i16]&gt;,
-    ) {
+    </span><span class="kw">fn </span>test_read_batch_int32(batch_size: usize, max_def_level: i16, max_rep_level: i16) {
         <span class="kw">let </span>primitive_type = get_test_int32_type();
-        <span class="comment">// make field is required based on provided slices of levels
-        </span><span class="kw">let </span>max_def_level = <span class="kw">if </span>def_levels.is_some() {
-            MAX_DEF_LEVEL
-        } <span class="kw">else </span>{
-            <span class="number">0
-        </span>};
-        <span class="kw">let </span>max_rep_level = <span class="kw">if </span>rep_levels.is_some() {
-            MAX_REP_LEVEL
-        } <span class="kw">else </span>{
-            <span class="number">0
-        </span>};
 
         <span class="kw">let </span>desc = Arc::new(ColumnDescriptor::new(
             Arc::new(primitive_type),
@@ -2618,6 +2463,7 @@
             max_rep_level,
             ColumnPath::new(Vec::new()),
         ));
+
         <span class="kw">let </span><span class="kw-2">mut </span>tester = ColumnReaderTester::&lt;Int32Type&gt;::new();
         tester.test_read_batch(
             desc,
@@ -2627,9 +2473,6 @@
             batch_size,
             i32::MIN,
             i32::MAX,
-            values,
-            def_levels,
-            rep_levels,
             <span class="bool-val">false</span>,
         );
     }
@@ -2757,21 +2600,8 @@
             max: T::T,
             use_v2: bool,
         ) {
-            <span class="kw">let </span><span class="kw-2">mut </span>def_levels = <span class="macro">vec!</span>[<span class="number">0</span>; num_levels * num_pages];
-            <span class="kw">let </span><span class="kw-2">mut </span>rep_levels = <span class="macro">vec!</span>[<span class="number">0</span>; num_levels * num_pages];
-            <span class="kw">let </span><span class="kw-2">mut </span>values = <span class="macro">vec!</span>[T::T::default(); num_levels * num_pages];
             <span class="self">self</span>.test_read_batch(
-                desc,
-                encoding,
-                num_pages,
-                num_levels,
-                batch_size,
-                min,
-                max,
-                <span class="kw-2">&amp;mut </span>values,
-                <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>def_levels),
-                <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>rep_levels),
-                use_v2,
+                desc, encoding, num_pages, num_levels, batch_size, min, max, use_v2,
             );
         }
 
@@ -2787,9 +2617,6 @@
             batch_size: usize,
             min: T::T,
             max: T::T,
-            values: <span class="kw-2">&amp;mut </span>[T::T],
-            <span class="kw-2">mut </span>def_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>[i16]&gt;,
-            <span class="kw-2">mut </span>rep_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>[i16]&gt;,
             use_v2: bool,
         ) {
             <span class="kw">let </span><span class="kw-2">mut </span>pages = VecDeque::new();
@@ -2812,18 +2639,19 @@
             <span class="kw">let </span>column_reader: ColumnReader = get_column_reader(desc, Box::new(page_reader));
             <span class="kw">let </span><span class="kw-2">mut </span>typed_column_reader = get_typed_column_reader::&lt;T&gt;(column_reader);
 
+            <span class="kw">let </span><span class="kw-2">mut </span>values = Vec::new();
+            <span class="kw">let </span><span class="kw-2">mut </span>def_levels = Vec::new();
+            <span class="kw">let </span><span class="kw-2">mut </span>rep_levels = Vec::new();
+
             <span class="kw">let </span><span class="kw-2">mut </span>curr_values_read = <span class="number">0</span>;
             <span class="kw">let </span><span class="kw-2">mut </span>curr_levels_read = <span class="number">0</span>;
             <span class="kw">loop </span>{
-                <span class="kw">let </span>actual_def_levels = def_levels.as_mut().map(|vec| <span class="kw-2">&amp;mut </span>vec[curr_levels_read..]);
-                <span class="kw">let </span>actual_rep_levels = rep_levels.as_mut().map(|vec| <span class="kw-2">&amp;mut </span>vec[curr_levels_read..]);
-
                 <span class="kw">let </span>(<span class="kw">_</span>, values_read, levels_read) = typed_column_reader
                     .read_records(
                         batch_size,
-                        actual_def_levels,
-                        actual_rep_levels,
-                        <span class="kw-2">&amp;mut </span>values[curr_values_read..],
+                        <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>def_levels),
+                        <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>rep_levels),
+                        <span class="kw-2">&amp;mut </span>values,
                     )
                     .expect(<span class="string">"read_batch() should be OK"</span>);
 
@@ -2835,38 +2663,18 @@
                 }
             }
 
-            <span class="macro">assert!</span>(
-                values.len() &gt;= curr_values_read,
-                <span class="string">"values.len() &gt;= values_read"
-            </span>);
-            <span class="macro">assert_eq!</span>(
-                <span class="kw-2">&amp;</span>values[<span class="number">0</span>..curr_values_read],
-                <span class="kw-2">&amp;</span><span class="self">self</span>.values[<span class="number">0</span>..curr_values_read],
-                <span class="string">"values content doesn't match"
-            </span>);
+            <span class="macro">assert_eq!</span>(values, <span class="self">self</span>.values, <span class="string">"values content doesn't match"</span>);
 
             <span class="kw">if </span>max_def_level &gt; <span class="number">0 </span>{
-                <span class="kw">let </span>levels = def_levels.as_ref().unwrap();
-                <span class="macro">assert!</span>(
-                    levels.len() &gt;= curr_levels_read,
-                    <span class="string">"def_levels.len() &gt;= levels_read"
-                </span>);
                 <span class="macro">assert_eq!</span>(
-                    <span class="kw-2">&amp;</span>levels[<span class="number">0</span>..curr_levels_read],
-                    <span class="kw-2">&amp;</span><span class="self">self</span>.def_levels[<span class="number">0</span>..curr_levels_read],
+                    def_levels, <span class="self">self</span>.def_levels,
                     <span class="string">"definition levels content doesn't match"
                 </span>);
             }
 
             <span class="kw">if </span>max_rep_level &gt; <span class="number">0 </span>{
-                <span class="kw">let </span>levels = rep_levels.as_ref().unwrap();
-                <span class="macro">assert!</span>(
-                    levels.len() &gt;= curr_levels_read,
-                    <span class="string">"rep_levels.len() &gt;= levels_read"
-                </span>);
                 <span class="macro">assert_eq!</span>(
-                    <span class="kw-2">&amp;</span>levels[<span class="number">0</span>..curr_levels_read],
-                    <span class="kw-2">&amp;</span><span class="self">self</span>.rep_levels[<span class="number">0</span>..curr_levels_read],
+                    rep_levels, <span class="self">self</span>.rep_levels,
                     <span class="string">"repetition levels content doesn't match"
                 </span>);
             }
diff --git a/src/parquet/column/reader/decoder.rs.html b/src/parquet/column/reader/decoder.rs.html
index bc150aca16..90d245023a 100644
--- a/src/parquet/column/reader/decoder.rs.html
+++ b/src/parquet/column/reader/decoder.rs.html
@@ -555,26 +555,6 @@
 <a href="#555" id="555">555</a>
 <a href="#556" id="556">556</a>
 <a href="#557" id="557">557</a>
-<a href="#558" id="558">558</a>
-<a href="#559" id="559">559</a>
-<a href="#560" id="560">560</a>
-<a href="#561" id="561">561</a>
-<a href="#562" id="562">562</a>
-<a href="#563" id="563">563</a>
-<a href="#564" id="564">564</a>
-<a href="#565" id="565">565</a>
-<a href="#566" id="566">566</a>
-<a href="#567" id="567">567</a>
-<a href="#568" id="568">568</a>
-<a href="#569" id="569">569</a>
-<a href="#570" id="570">570</a>
-<a href="#571" id="571">571</a>
-<a href="#572" id="572">572</a>
-<a href="#573" id="573">573</a>
-<a href="#574" id="574">574</a>
-<a href="#575" id="575">575</a>
-<a href="#576" id="576">576</a>
-<a href="#577" id="577">577</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
@@ -593,7 +573,6 @@
 // under the License.
 
 </span><span class="kw">use </span>std::collections::HashMap;
-<span class="kw">use </span>std::ops::Range;
 
 <span class="kw">use </span>bytes::Bytes;
 
@@ -607,52 +586,18 @@
 <span class="kw">use </span><span class="kw">crate</span>::schema::types::ColumnDescPtr;
 <span class="kw">use </span><span class="kw">crate</span>::util::bit_util::{num_required_bits, BitReader};
 
-<span class="doccomment">/// A slice of levels buffer data that is written to by a [`ColumnLevelDecoder`]
-</span><span class="kw">pub trait </span>LevelsBufferSlice {
-    <span class="doccomment">/// Returns the capacity of this slice or `usize::MAX` if no limit
-    </span><span class="kw">fn </span>capacity(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; usize;
-
-    <span class="doccomment">/// Count the number of levels in `range` not equal to `max_level`
-    </span><span class="kw">fn </span>count_nulls(<span class="kw-2">&amp;</span><span class="self">self</span>, range: Range&lt;usize&gt;, max_level: i16) -&gt; usize;
-}
-
-<span class="kw">impl </span>LevelsBufferSlice <span class="kw">for </span>[i16] {
-    <span class="kw">fn </span>capacity(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; usize {
-        <span class="self">self</span>.len()
-    }
-
-    <span class="kw">fn </span>count_nulls(<span class="kw-2">&amp;</span><span class="self">self</span>, range: Range&lt;usize&gt;, max_level: i16) -&gt; usize {
-        <span class="self">self</span>[range].iter().filter(|i| <span class="kw-2">**</span>i != max_level).count()
-    }
-}
-
-<span class="doccomment">/// A slice of values buffer data that is written to by a [`ColumnValueDecoder`]
-</span><span class="kw">pub trait </span>ValuesBufferSlice {
-    <span class="doccomment">/// Returns the capacity of this slice or `usize::MAX` if no limit
-    </span><span class="kw">fn </span>capacity(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; usize;
-}
-
-<span class="kw">impl</span>&lt;T&gt; ValuesBufferSlice <span class="kw">for </span>[T] {
-    <span class="kw">fn </span>capacity(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; usize {
-        <span class="self">self</span>.len()
-    }
-}
-
-<span class="doccomment">/// Decodes level data to a [`LevelsBufferSlice`]
+<span class="doccomment">/// Decodes level data
 </span><span class="kw">pub trait </span>ColumnLevelDecoder {
-    <span class="kw">type </span>Slice: LevelsBufferSlice + <span class="question-mark">?</span>Sized;
+    <span class="kw">type </span>Buffer;
 
     <span class="doccomment">/// Set data for this [`ColumnLevelDecoder`]
     </span><span class="kw">fn </span>set_data(<span class="kw-2">&amp;mut </span><span class="self">self</span>, encoding: Encoding, data: Bytes);
 }
 
 <span class="kw">pub trait </span>RepetitionLevelDecoder: ColumnLevelDecoder {
-    <span class="doccomment">/// Read up to `max_records` of repetition level data into `out[range]` returning the number
+    <span class="doccomment">/// Read up to `max_records` of repetition level data into `out` returning the number
     /// of complete records and levels read
     ///
-    /// `range` is provided by the caller to allow for types such as default-initialized `[T]`
-    /// that only track capacity and not length
-    ///
     /// A record only ends when the data contains a subsequent repetition level of 0,
     /// it is therefore left to the caller to delimit the final record in a column
     ///
@@ -661,9 +606,9 @@
     /// Implementations may panic if `range` overlaps with already written data
     </span><span class="kw">fn </span>read_rep_levels(
         <span class="kw-2">&amp;mut </span><span class="self">self</span>,
-        out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice,
-        range: Range&lt;usize&gt;,
-        max_records: usize,
+        out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer,
+        num_records: usize,
+        num_levels: usize,
     ) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt;;
 
     <span class="doccomment">/// Skips over up to `num_levels` repetition levels corresponding to `num_records` records,
@@ -680,27 +625,28 @@
 }
 
 <span class="kw">pub trait </span>DefinitionLevelDecoder: ColumnLevelDecoder {
-    <span class="doccomment">/// Read definition level data into `out[range]` returning the number of levels read
+    <span class="doccomment">/// Read up to `num_levels` definition levels into `out`
     ///
-    /// `range` is provided by the caller to allow for types such as default-initialized `[T]`
-    /// that only track capacity and not length
+    /// Returns the number of values skipped, and the number of levels skipped
     ///
     /// # Panics
     ///
     /// Implementations may panic if `range` overlaps with already written data
-    ///
-    </span><span class="comment">// TODO: Should this return the number of nulls
-    </span><span class="kw">fn </span>read_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice, range: Range&lt;usize&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt;;
+    </span><span class="kw">fn </span>read_def_levels(
+        <span class="kw-2">&amp;mut </span><span class="self">self</span>,
+        out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer,
+        num_levels: usize,
+    ) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt;;
 
     <span class="doccomment">/// Skips over `num_levels` definition levels
     ///
     /// Returns the number of values skipped, and the number of levels skipped
-    </span><span class="kw">fn </span>skip_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>, num_levels: usize, max_def_level: i16) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt;;
+    </span><span class="kw">fn </span>skip_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>, num_levels: usize) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt;;
 }
 
-<span class="doccomment">/// Decodes value data to a [`ValuesBufferSlice`]
+<span class="doccomment">/// Decodes value data
 </span><span class="kw">pub trait </span>ColumnValueDecoder {
-    <span class="kw">type </span>Slice: ValuesBufferSlice + <span class="question-mark">?</span>Sized;
+    <span class="kw">type </span>Buffer;
 
     <span class="doccomment">/// Create a new [`ColumnValueDecoder`]
     </span><span class="kw">fn </span>new(col: <span class="kw-2">&amp;</span>ColumnDescPtr) -&gt; <span class="self">Self</span>;
@@ -733,16 +679,13 @@
         num_values: <span class="prelude-ty">Option</span>&lt;usize&gt;,
     ) -&gt; <span class="prelude-ty">Result</span>&lt;()&gt;;
 
-    <span class="doccomment">/// Read values data into `out[range]` returning the number of values read
-    ///
-    /// `range` is provided by the caller to allow for types such as default-initialized `[T]`
-    /// that only track capacity and not length
+    <span class="doccomment">/// Read up to `num_values` values into `out`
     ///
     /// # Panics
     ///
     /// Implementations may panic if `range` overlaps with already written data
     ///
-    </span><span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice, range: Range&lt;usize&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt;;
+    </span><span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer, num_values: usize) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt;;
 
     <span class="doccomment">/// Skips over `num_values` values
     ///
@@ -761,7 +704,7 @@
 }
 
 <span class="kw">impl</span>&lt;T: DataType&gt; ColumnValueDecoder <span class="kw">for </span>ColumnValueDecoderImpl&lt;T&gt; {
-    <span class="kw">type </span>Slice = [T::T];
+    <span class="kw">type </span>Buffer = Vec&lt;T::T&gt;;
 
     <span class="kw">fn </span>new(descr: <span class="kw-2">&amp;</span>ColumnDescPtr) -&gt; <span class="self">Self </span>{
         <span class="self">Self </span>{
@@ -835,7 +778,7 @@
         <span class="prelude-val">Ok</span>(())
     }
 
-    <span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice, range: Range&lt;usize&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
+    <span class="kw">fn </span>read(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer, num_values: usize) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
         <span class="kw">let </span>encoding = <span class="self">self
             </span>.current_encoding
             .expect(<span class="string">"current_encoding should be set"</span>);
@@ -845,7 +788,12 @@
             .get_mut(<span class="kw-2">&amp;</span>encoding)
             .unwrap_or_else(|| <span class="macro">panic!</span>(<span class="string">"decoder for encoding {encoding} should be set"</span>));
 
-        current_decoder.get(<span class="kw-2">&amp;mut </span>out[range])
+        <span class="comment">// TODO: Push vec into decoder (#5177)
+        </span><span class="kw">let </span>start = out.len();
+        out.resize(start + num_values, T::T::default());
+        <span class="kw">let </span>read = current_decoder.get(<span class="kw-2">&amp;mut </span>out[start..])<span class="question-mark">?</span>;
+        out.truncate(start + read);
+        <span class="prelude-val">Ok</span>(read)
     }
 
     <span class="kw">fn </span>skip_values(<span class="kw-2">&amp;mut </span><span class="self">self</span>, num_values: usize) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
@@ -896,6 +844,7 @@
 </span><span class="kw">pub struct </span>DefinitionLevelDecoderImpl {
     decoder: <span class="prelude-ty">Option</span>&lt;LevelDecoder&gt;,
     bit_width: u8,
+    max_level: i16,
 }
 
 <span class="kw">impl </span>DefinitionLevelDecoderImpl {
@@ -904,12 +853,13 @@
         <span class="self">Self </span>{
             decoder: <span class="prelude-val">None</span>,
             bit_width,
+            max_level,
         }
     }
 }
 
 <span class="kw">impl </span>ColumnLevelDecoder <span class="kw">for </span>DefinitionLevelDecoderImpl {
-    <span class="kw">type </span>Slice = [i16];
+    <span class="kw">type </span>Buffer = Vec&lt;i16&gt;;
 
     <span class="kw">fn </span>set_data(<span class="kw-2">&amp;mut </span><span class="self">self</span>, encoding: Encoding, data: Bytes) {
         <span class="self">self</span>.decoder = <span class="prelude-val">Some</span>(LevelDecoder::new(encoding, data, <span class="self">self</span>.bit_width))
@@ -917,11 +867,23 @@
 }
 
 <span class="kw">impl </span>DefinitionLevelDecoder <span class="kw">for </span>DefinitionLevelDecoderImpl {
-    <span class="kw">fn </span>read_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>, out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice, range: Range&lt;usize&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;usize&gt; {
-        <span class="self">self</span>.decoder.as_mut().unwrap().read(<span class="kw-2">&amp;mut </span>out[range])
+    <span class="kw">fn </span>read_def_levels(
+        <span class="kw-2">&amp;mut </span><span class="self">self</span>,
+        out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer,
+        num_levels: usize,
+    ) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt; {
+        <span class="comment">// TODO: Push vec into decoder (#5177)
+        </span><span class="kw">let </span>start = out.len();
+        out.resize(start + num_levels, <span class="number">0</span>);
+        <span class="kw">let </span>levels_read = <span class="self">self</span>.decoder.as_mut().unwrap().read(<span class="kw-2">&amp;mut </span>out[start..])<span class="question-mark">?</span>;
+        out.truncate(start + levels_read);
+
+        <span class="kw">let </span>iter = out.iter().skip(start);
+        <span class="kw">let </span>values_read = iter.filter(|x| <span class="kw-2">**</span>x == <span class="self">self</span>.max_level).count();
+        <span class="prelude-val">Ok</span>((values_read, levels_read))
     }
 
-    <span class="kw">fn </span>skip_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>, num_levels: usize, max_def_level: i16) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt; {
+    <span class="kw">fn </span>skip_def_levels(<span class="kw-2">&amp;mut </span><span class="self">self</span>, num_levels: usize) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt; {
         <span class="kw">let </span><span class="kw-2">mut </span>level_skip = <span class="number">0</span>;
         <span class="kw">let </span><span class="kw-2">mut </span>value_skip = <span class="number">0</span>;
         <span class="kw">let </span><span class="kw-2">mut </span>buf: Vec&lt;i16&gt; = <span class="macro">vec!</span>[];
@@ -930,14 +892,14 @@
 
             <span class="kw">let </span>to_read = remaining_levels.min(SKIP_BUFFER_SIZE);
             buf.resize(to_read, <span class="number">0</span>);
-            <span class="kw">let </span>read = <span class="self">self</span>.read_def_levels(<span class="kw-2">&amp;mut </span>buf, <span class="number">0</span>..to_read)<span class="question-mark">?</span>;
-            <span class="kw">if </span>read == <span class="number">0 </span>{
+            <span class="kw">let </span>(values_read, levels_read) = <span class="self">self</span>.read_def_levels(<span class="kw-2">&amp;mut </span>buf, to_read)<span class="question-mark">?</span>;
+            <span class="kw">if </span>levels_read == <span class="number">0 </span>{
                 <span class="comment">// Reached end of page
                 </span><span class="kw">break</span>;
             }
 
-            level_skip += read;
-            value_skip += buf[..read].iter().filter(|x| <span class="kw-2">**</span>x == max_def_level).count();
+            level_skip += levels_read;
+            value_skip += values_read;
         }
 
         <span class="prelude-val">Ok</span>((value_skip, level_skip))
@@ -1000,7 +962,7 @@
 }
 
 <span class="kw">impl </span>ColumnLevelDecoder <span class="kw">for </span>RepetitionLevelDecoderImpl {
-    <span class="kw">type </span>Slice = [i16];
+    <span class="kw">type </span>Buffer = Vec&lt;i16&gt;;
 
     <span class="kw">fn </span>set_data(<span class="kw-2">&amp;mut </span><span class="self">self</span>, encoding: Encoding, data: Bytes) {
         <span class="self">self</span>.decoder = <span class="prelude-val">Some</span>(LevelDecoder::new(encoding, data, <span class="self">self</span>.bit_width));
@@ -1012,16 +974,14 @@
 <span class="kw">impl </span>RepetitionLevelDecoder <span class="kw">for </span>RepetitionLevelDecoderImpl {
     <span class="kw">fn </span>read_rep_levels(
         <span class="kw-2">&amp;mut </span><span class="self">self</span>,
-        out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Slice,
-        range: Range&lt;usize&gt;,
-        max_records: usize,
+        out: <span class="kw-2">&amp;mut </span><span class="self">Self</span>::Buffer,
+        num_records: usize,
+        num_levels: usize,
     ) -&gt; <span class="prelude-ty">Result</span>&lt;(usize, usize)&gt; {
-        <span class="kw">let </span>output = <span class="kw-2">&amp;mut </span>out[range];
-        <span class="kw">let </span>max_levels = output.len();
         <span class="kw">let </span><span class="kw-2">mut </span>total_records_read = <span class="number">0</span>;
         <span class="kw">let </span><span class="kw-2">mut </span>total_levels_read = <span class="number">0</span>;
 
-        <span class="kw">while </span>total_records_read &lt; max_records &amp;&amp; total_levels_read &lt; max_levels {
+        <span class="kw">while </span>total_records_read &lt; num_records &amp;&amp; total_levels_read &lt; num_levels {
             <span class="kw">if </span><span class="self">self</span>.buffer_len == <span class="self">self</span>.buffer_offset {
                 <span class="self">self</span>.fill_buf()<span class="question-mark">?</span>;
                 <span class="kw">if </span><span class="self">self</span>.buffer_len == <span class="number">0 </span>{
@@ -1030,11 +990,11 @@
             }
 
             <span class="kw">let </span>(partial, records_read, levels_read) = <span class="self">self</span>.count_records(
-                max_records - total_records_read,
-                max_levels - total_levels_read,
+                num_records - total_records_read,
+                num_levels - total_levels_read,
             );
 
-            output[total_levels_read..total_levels_read + levels_read].copy_from_slice(
+            out.extend_from_slice(
                 <span class="kw-2">&amp;</span><span class="self">self</span>.buffer[<span class="self">self</span>.buffer_offset..<span class="self">self</span>.buffer_offset + levels_read],
             );
 
@@ -1127,13 +1087,13 @@
                 <span class="kw">let </span>(records_read, levels_read) = <span class="kw">if </span>skip {
                     decoder.skip_rep_levels(records, remaining_levels).unwrap()
                 } <span class="kw">else </span>{
-                    <span class="kw">let </span><span class="kw-2">mut </span>decoded = <span class="macro">vec!</span>[<span class="number">0</span>; remaining_levels];
+                    <span class="kw">let </span><span class="kw-2">mut </span>decoded = Vec::new();
                     <span class="kw">let </span>(records_read, levels_read) = decoder
-                        .read_rep_levels(<span class="kw-2">&amp;mut </span>decoded, <span class="number">0</span>..remaining_levels, records)
+                        .read_rep_levels(<span class="kw-2">&amp;mut </span>decoded, records, remaining_levels)
                         .unwrap();
 
                     <span class="macro">assert_eq!</span>(
-                        decoded[..levels_read],
+                        decoded,
                         encoded[encoded.len() - remaining_levels..][..levels_read]
                     );
                     (records_read, levels_read)
diff --git a/src/parquet/column/writer/mod.rs.html b/src/parquet/column/writer/mod.rs.html
index fb805039f4..303c674f05 100644
--- a/src/parquet/column/writer/mod.rs.html
+++ b/src/parquet/column/writer/mod.rs.html
@@ -3565,21 +3565,6 @@
 <a href="#3565" id="3565">3565</a>
 <a href="#3566" id="3566">3566</a>
 <a href="#3567" id="3567">3567</a>
-<a href="#3568" id="3568">3568</a>
-<a href="#3569" id="3569">3569</a>
-<a href="#3570" id="3570">3570</a>
-<a href="#3571" id="3571">3571</a>
-<a href="#3572" id="3572">3572</a>
-<a href="#3573" id="3573">3573</a>
-<a href="#3574" id="3574">3574</a>
-<a href="#3575" id="3575">3575</a>
-<a href="#3576" id="3576">3576</a>
-<a href="#3577" id="3577">3577</a>
-<a href="#3578" id="3578">3578</a>
-<a href="#3579" id="3579">3579</a>
-<a href="#3580" id="3580">3580</a>
-<a href="#3581" id="3581">3581</a>
-<a href="#3582" id="3582">3582</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
@@ -6874,19 +6859,20 @@
             )
             .unwrap(),
         );
-        <span class="kw">let </span>reader = get_test_column_reader::&lt;T&gt;(page_reader, max_def_level, max_rep_level);
-
-        <span class="kw">let </span><span class="kw-2">mut </span>actual_values = <span class="macro">vec!</span>[T::T::default(); max_batch_size];
-        <span class="kw">let </span><span class="kw-2">mut </span>actual_def_levels = def_levels.map(|<span class="kw">_</span>| <span class="macro">vec!</span>[<span class="number">0i16</span>; max_batch_size]);
-        <span class="kw">let </span><span class="kw-2">mut </span>actual_rep_levels = rep_levels.map(|<span class="kw">_</span>| <span class="macro">vec!</span>[<span class="number">0i16</span>; max_batch_size]);
-
-        <span class="kw">let </span>(<span class="kw">_</span>, values_read, levels_read) = read_fully(
-            reader,
-            max_batch_size,
-            actual_def_levels.as_mut(),
-            actual_rep_levels.as_mut(),
-            actual_values.as_mut_slice(),
-        );
+        <span class="kw">let </span><span class="kw-2">mut </span>reader = get_test_column_reader::&lt;T&gt;(page_reader, max_def_level, max_rep_level);
+
+        <span class="kw">let </span><span class="kw-2">mut </span>actual_values = Vec::with_capacity(max_batch_size);
+        <span class="kw">let </span><span class="kw-2">mut </span>actual_def_levels = def_levels.map(|<span class="kw">_</span>| Vec::with_capacity(max_batch_size));
+        <span class="kw">let </span><span class="kw-2">mut </span>actual_rep_levels = rep_levels.map(|<span class="kw">_</span>| Vec::with_capacity(max_batch_size));
+
+        <span class="kw">let </span>(<span class="kw">_</span>, values_read, levels_read) = reader
+            .read_records(
+                max_batch_size,
+                actual_def_levels.as_mut(),
+                actual_rep_levels.as_mut(),
+                <span class="kw-2">&amp;mut </span>actual_values,
+            )
+            .unwrap();
 
         <span class="comment">// Assert values, definition and repetition levels.
 
@@ -6949,22 +6935,6 @@
         <span class="macro">assert_eq!</span>(meta.encodings(), <span class="kw-2">&amp;</span>encodings);
     }
 
-    <span class="doccomment">/// Reads one batch of data, considering that batch is large enough to capture all of
-    /// the values and levels.
-    </span><span class="kw">fn </span>read_fully&lt;T: DataType&gt;(
-        <span class="kw-2">mut </span>reader: ColumnReaderImpl&lt;T&gt;,
-        batch_size: usize,
-        <span class="kw-2">mut </span>def_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>Vec&lt;i16&gt;&gt;,
-        <span class="kw-2">mut </span>rep_levels: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;mut </span>Vec&lt;i16&gt;&gt;,
-        values: <span class="kw-2">&amp;mut </span>[T::T],
-    ) -&gt; (usize, usize, usize) {
-        <span class="kw">let </span>actual_def_levels = def_levels.as_mut().map(|vec| <span class="kw-2">&amp;mut </span>vec[..]);
-        <span class="kw">let </span>actual_rep_levels = rep_levels.as_mut().map(|vec| <span class="kw-2">&amp;mut </span>vec[..]);
-        reader
-            .read_records(batch_size, actual_def_levels, actual_rep_levels, values)
-            .unwrap()
-    }
-
     <span class="doccomment">/// Returns column writer.
     </span><span class="kw">fn </span>get_test_column_writer&lt;<span class="lifetime">'a</span>, T: DataType&gt;(
         page_writer: Box&lt;<span class="kw">dyn </span>PageWriter + <span class="lifetime">'a</span>&gt;,
diff --git a/src/parquet/file/serialized_reader.rs.html b/src/parquet/file/serialized_reader.rs.html
index d4ced97b9a..1646d96189 100644
--- a/src/parquet/file/serialized_reader.rs.html
+++ b/src/parquet/file/serialized_reader.rs.html
@@ -3497,8 +3497,8 @@
         <span class="kw">let </span>row_group_reader = reader.get_row_group(<span class="number">0</span>).unwrap();
         <span class="kw">match </span>row_group_reader.get_column_reader(<span class="number">0</span>).unwrap() {
             ColumnReader::Int64ColumnReader(<span class="kw-2">mut </span>reader) =&gt; {
-                <span class="kw">let </span><span class="kw-2">mut </span>buffer = [<span class="number">0</span>; <span class="number">1024</span>];
-                <span class="kw">let </span><span class="kw-2">mut </span>def_levels = [<span class="number">0</span>; <span class="number">1024</span>];
+                <span class="kw">let </span><span class="kw-2">mut </span>buffer = Vec::with_capacity(<span class="number">1024</span>);
+                <span class="kw">let </span><span class="kw-2">mut </span>def_levels = Vec::with_capacity(<span class="number">1024</span>);
                 <span class="kw">let </span>(num_records, num_values, num_levels) = reader
                     .read_records(<span class="number">1024</span>, <span class="prelude-val">Some</span>(<span class="kw-2">&amp;mut </span>def_levels), <span class="prelude-val">None</span>, <span class="kw-2">&amp;mut </span>buffer)
                     .unwrap();
@@ -3508,7 +3508,7 @@
                 <span class="macro">assert_eq!</span>(num_levels, <span class="number">513</span>);
 
                 <span class="kw">let </span>expected: Vec&lt;i64&gt; = (<span class="number">1</span>..<span class="number">514</span>).collect();
-                <span class="macro">assert_eq!</span>(<span class="kw-2">&amp;</span>buffer[..<span class="number">513</span>], <span class="kw-2">&amp;</span>expected);
+                <span class="macro">assert_eq!</span>(<span class="kw-2">&amp;</span>buffer, <span class="kw-2">&amp;</span>expected);
             }
             <span class="kw">_ </span>=&gt; <span class="macro">unreachable!</span>(),
         }
diff --git a/src/parquet/file/writer.rs.html b/src/parquet/file/writer.rs.html
index 2de59e2217..6f5cfff780 100644
--- a/src/parquet/file/writer.rs.html
+++ b/src/parquet/file/writer.rs.html
@@ -1777,6 +1777,8 @@
 <a href="#1777" id="1777">1777</a>
 <a href="#1778" id="1778">1778</a>
 <a href="#1779" id="1779">1779</a>
+<a href="#1780" id="1780">1780</a>
+<a href="#1781" id="1781">1781</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
@@ -3479,12 +3481,14 @@
         <span class="kw">let </span>test_read = |reader: SerializedFileReader&lt;Bytes&gt;| {
             <span class="kw">let </span>row_group = reader.get_row_group(<span class="number">0</span>).unwrap();
 
-            <span class="kw">let </span><span class="kw-2">mut </span>out = [<span class="number">0</span>; <span class="number">4</span>];
+            <span class="kw">let </span><span class="kw-2">mut </span>out = Vec::with_capacity(<span class="number">4</span>);
             <span class="kw">let </span>c1 = row_group.get_column_reader(<span class="number">0</span>).unwrap();
             <span class="kw">let </span><span class="kw-2">mut </span>c1 = get_typed_column_reader::&lt;Int32Type&gt;(c1);
             c1.read_records(<span class="number">4</span>, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span class="kw-2">&amp;mut </span>out).unwrap();
             <span class="macro">assert_eq!</span>(out, column_data[<span class="number">0</span>]);
 
+            out.clear();
+
             <span class="kw">let </span>c2 = row_group.get_column_reader(<span class="number">1</span>).unwrap();
             <span class="kw">let </span><span class="kw-2">mut </span>c2 = get_typed_column_reader::&lt;Int32Type&gt;(c2);
             c2.read_records(<span class="number">4</span>, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span class="kw-2">&amp;mut </span>out).unwrap();
diff --git a/src/parquet/record/triplet.rs.html b/src/parquet/record/triplet.rs.html
index 130113e55e..4eb16d8ff7 100644
--- a/src/parquet/record/triplet.rs.html
+++ b/src/parquet/record/triplet.rs.html
@@ -559,6 +559,9 @@
 <a href="#559" id="559">559</a>
 <a href="#560" id="560">560</a>
 <a href="#561" id="561">561</a>
+<a href="#562" id="562">562</a>
+<a href="#563" id="563">563</a>
+<a href="#564" id="564">564</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
@@ -857,17 +860,19 @@
         // and therefore not advance `self.triplets_left`
         </span><span class="kw">while </span><span class="self">self</span>.curr_triplet_index &gt;= <span class="self">self</span>.triplets_left {
             <span class="kw">let </span>(records_read, values_read, levels_read) = {
-                <span class="comment">// Get slice of definition levels, if available
-                </span><span class="kw">let </span>def_levels = <span class="self">self</span>.def_levels.as_mut().map(|vec| <span class="kw-2">&amp;mut </span>vec[..]);
-
-                <span class="comment">// Get slice of repetition levels, if available
-                </span><span class="kw">let </span>rep_levels = <span class="self">self</span>.rep_levels.as_mut().map(|vec| <span class="kw-2">&amp;mut </span>vec[..]);
+                <span class="self">self</span>.values.clear();
+                <span class="kw">if let </span><span class="prelude-val">Some</span>(x) = <span class="kw-2">&amp;mut </span><span class="self">self</span>.def_levels {
+                    x.clear()
+                }
+                <span class="kw">if let </span><span class="prelude-val">Some</span>(x) = <span class="kw-2">&amp;mut </span><span class="self">self</span>.rep_levels {
+                    x.clear()
+                }
 
                 <span class="comment">// Buffer triplets
                 </span><span class="self">self</span>.reader.read_records(
                     <span class="self">self</span>.batch_size,
-                    def_levels,
-                    rep_levels,
+                    <span class="self">self</span>.def_levels.as_mut(),
+                    <span class="self">self</span>.rep_levels.as_mut(),
                     <span class="kw-2">&amp;mut </span><span class="self">self</span>.values,
                 )<span class="question-mark">?
             </span>};
@@ -894,6 +899,7 @@
                 // Note: if values_read == 0, then spacing will not be triggered
                 </span><span class="kw">let </span><span class="kw-2">mut </span>idx = values_read;
                 <span class="kw">let </span>def_levels = <span class="self">self</span>.def_levels.as_ref().unwrap();
+                <span class="self">self</span>.values.resize(levels_read, T::T::default());
                 <span class="kw">for </span>i <span class="kw">in </span><span class="number">0</span>..levels_read {
                     <span class="kw">if </span>def_levels[levels_read - i - <span class="number">1</span>] == <span class="self">self</span>.max_def_level {
                         idx -= <span class="number">1</span>; <span class="comment">// This is done to avoid usize becoming a negative value
diff --git a/src/parquet_derive/parquet_field.rs.html b/src/parquet_derive/parquet_field.rs.html
index 3b6ad3e683..f22535c496 100644
--- a/src/parquet_derive/parquet_field.rs.html
+++ b/src/parquet_derive/parquet_field.rs.html
@@ -1402,34 +1402,6 @@
 <a href="#1402" id="1402">1402</a>
 <a href="#1403" id="1403">1403</a>
 <a href="#1404" id="1404">1404</a>
-<a href="#1405" id="1405">1405</a>
-<a href="#1406" id="1406">1406</a>
-<a href="#1407" id="1407">1407</a>
-<a href="#1408" id="1408">1408</a>
-<a href="#1409" id="1409">1409</a>
-<a href="#1410" id="1410">1410</a>
-<a href="#1411" id="1411">1411</a>
-<a href="#1412" id="1412">1412</a>
-<a href="#1413" id="1413">1413</a>
-<a href="#1414" id="1414">1414</a>
-<a href="#1415" id="1415">1415</a>
-<a href="#1416" id="1416">1416</a>
-<a href="#1417" id="1417">1417</a>
-<a href="#1418" id="1418">1418</a>
-<a href="#1419" id="1419">1419</a>
-<a href="#1420" id="1420">1420</a>
-<a href="#1421" id="1421">1421</a>
-<a href="#1422" id="1422">1422</a>
-<a href="#1423" id="1423">1423</a>
-<a href="#1424" id="1424">1424</a>
-<a href="#1425" id="1425">1425</a>
-<a href="#1426" id="1426">1426</a>
-<a href="#1427" id="1427">1427</a>
-<a href="#1428" id="1428">1428</a>
-<a href="#1429" id="1429">1429</a>
-<a href="#1430" id="1430">1430</a>
-<a href="#1431" id="1431">1431</a>
-<a href="#1432" id="1432">1432</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
@@ -1675,15 +1647,12 @@
     </span><span class="kw">pub fn </span>reader_snippet(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; proc_macro2::TokenStream {
         <span class="kw">let </span>ident = <span class="kw-2">&amp;</span><span class="self">self</span>.ident;
         <span class="kw">let </span>column_reader = <span class="self">self</span>.ty.column_reader();
-        <span class="kw">let </span>parquet_type = <span class="self">self</span>.ty.physical_type_as_rust();
 
         <span class="comment">// generate the code to read the column into a vector `vals`
         </span><span class="kw">let </span>write_batch_expr = <span class="macro">quote! </span>{
-            <span class="kw">let </span><span class="kw-2">mut </span>vals_vec = Vec::new();
-            vals_vec.resize(num_records, Default::default());
-            <span class="kw">let </span><span class="kw-2">mut </span>vals: <span class="kw-2">&amp;mut </span>[#parquet_type] = vals_vec.as_mut_slice();
+            <span class="kw">let </span><span class="kw-2">mut </span>vals = Vec::new();
             <span class="kw">if let </span>#column_reader(<span class="kw-2">mut </span>typed) = column_reader {
-                typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, vals)<span class="question-mark">?</span>;
+                typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span class="kw-2">&amp;mut </span>vals)<span class="question-mark">?</span>;
             } <span class="kw">else </span>{
                 <span class="macro">panic!</span>(<span class="string">"Schema and struct disagree on type for {}"</span>, <span class="macro">stringify!</span>{#ident});
             }
@@ -2078,23 +2047,6 @@
         }
     }
 
-    <span class="kw">fn </span>physical_type_as_rust(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; proc_macro2::TokenStream {
-        <span class="kw">use </span>parquet::basic::Type <span class="kw">as </span>BasicType;
-
-        <span class="kw">match </span><span class="self">self</span>.physical_type() {
-            BasicType::BOOLEAN =&gt; <span class="macro">quote! </span>{ bool },
-            BasicType::INT32 =&gt; <span class="macro">quote! </span>{ i32 },
-            BasicType::INT64 =&gt; <span class="macro">quote! </span>{ i64 },
-            BasicType::INT96 =&gt; <span class="macro">unimplemented!</span>(<span class="string">"96-bit int currently is not supported"</span>),
-            BasicType::FLOAT =&gt; <span class="macro">quote! </span>{ f32 },
-            BasicType::DOUBLE =&gt; <span class="macro">quote! </span>{ f64 },
-            BasicType::BYTE_ARRAY =&gt; <span class="macro">quote! </span>{ ::parquet::data_type::ByteArray },
-            BasicType::FIXED_LEN_BYTE_ARRAY =&gt; {
-                <span class="macro">quote! </span>{ ::parquet::data_type::FixedLenByteArray }
-            }
-        }
-    }
-
     <span class="kw">fn </span>logical_type(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; proc_macro2::TokenStream {
         <span class="kw">let </span>last_part = <span class="self">self</span>.last_part();
         <span class="kw">let </span>leaf_type = <span class="self">self</span>.leaf_type_recursive();
@@ -2309,11 +2261,9 @@
             snippet,
             (<span class="macro">quote! </span>{
                  {
-                     <span class="kw">let </span><span class="kw-2">mut </span>vals_vec = Vec::new();
-                     vals_vec.resize(num_records, Default::default());
-                     <span class="kw">let </span><span class="kw-2">mut </span>vals: <span class="kw-2">&amp;mut</span>[i64] = vals_vec.as_mut_slice();
+                     <span class="kw">let </span><span class="kw-2">mut </span>vals = Vec::new();
                      <span class="kw">if let </span>ColumnReader::Int64ColumnReader(<span class="kw-2">mut </span>typed) = column_reader {
-                         typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, vals)<span class="question-mark">?</span>;
+                         typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span class="kw-2">&amp;mut </span>vals)<span class="question-mark">?</span>;
                      } <span class="kw">else </span>{
                          <span class="macro">panic!</span>(<span class="string">"Schema and struct disagree on type for {}"</span>, <span class="macro">stringify!</span>{ counter });
                      }
@@ -2688,11 +2638,9 @@
         <span class="kw">let </span>when = Field::from(<span class="kw-2">&amp;</span>fields[<span class="number">0</span>]);
         <span class="macro">assert_eq!</span>(when.reader_snippet().to_string(),(<span class="macro">quote!</span>{
             {
-                <span class="kw">let </span><span class="kw-2">mut </span>vals_vec = Vec::new();
-                vals_vec.resize(num_records, Default::default());
-                <span class="kw">let </span><span class="kw-2">mut </span>vals: <span class="kw-2">&amp;mut</span>[i64] = vals_vec.as_mut_slice();
+                <span class="kw">let </span><span class="kw-2">mut </span>vals = Vec::new();
                 <span class="kw">if let </span>ColumnReader::Int64ColumnReader(<span class="kw-2">mut </span>typed) = column_reader {
-                    typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, vals)<span class="question-mark">?</span>;
+                    typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span class="kw-2">&amp;mut </span>vals)<span class="question-mark">?</span>;
                 } <span class="kw">else </span>{
                     <span class="macro">panic!</span>(<span class="string">"Schema and struct disagree on type for {}"</span>, <span class="macro">stringify!</span>{ henceforth });
                 }
@@ -2758,11 +2706,9 @@
         <span class="kw">let </span>when = Field::from(<span class="kw-2">&amp;</span>fields[<span class="number">0</span>]);
         <span class="macro">assert_eq!</span>(when.reader_snippet().to_string(),(<span class="macro">quote!</span>{
             {
-                <span class="kw">let </span><span class="kw-2">mut </span>vals_vec = Vec::new();
-                vals_vec.resize(num_records, Default::default());
-                <span class="kw">let </span><span class="kw-2">mut </span>vals: <span class="kw-2">&amp;mut </span>[i32] = vals_vec.as_mut_slice();
+                <span class="kw">let </span><span class="kw-2">mut </span>vals = Vec::new();
                 <span class="kw">if let </span>ColumnReader::Int32ColumnReader(<span class="kw-2">mut </span>typed) = column_reader {
-                    typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, vals)<span class="question-mark">?</span>;
+                    typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span class="kw-2">&amp;mut </span>vals)<span class="question-mark">?</span>;
                 } <span class="kw">else </span>{
                     <span class="macro">panic!</span>(<span class="string">"Schema and struct disagree on type for {}"</span>, <span class="macro">stringify!</span>{ henceforth });
                 }
@@ -2828,11 +2774,9 @@
         <span class="kw">let </span>when = Field::from(<span class="kw-2">&amp;</span>fields[<span class="number">0</span>]);
         <span class="macro">assert_eq!</span>(when.reader_snippet().to_string(),(<span class="macro">quote!</span>{
             {
-                <span class="kw">let </span><span class="kw-2">mut </span>vals_vec = Vec::new();
-                vals_vec.resize(num_records, Default::default());
-                <span class="kw">let </span><span class="kw-2">mut </span>vals: <span class="kw-2">&amp;mut </span>[::parquet::data_type::ByteArray] = vals_vec.as_mut_slice();
+                <span class="kw">let </span><span class="kw-2">mut </span>vals = Vec::new();
                 <span class="kw">if let </span>ColumnReader::ByteArrayColumnReader(<span class="kw-2">mut </span>typed) = column_reader {
-                    typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, vals)<span class="question-mark">?</span>;
+                    typed.read_records(num_records, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span class="kw-2">&amp;mut </span>vals)<span class="question-mark">?</span>;
                 } <span class="kw">else </span>{
                     <span class="macro">panic!</span>(<span class="string">"Schema and struct disagree on type for {}"</span>, <span class="macro">stringify!</span>{ unique_id });
                 }
diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js
index c368f58e86..3a4e54a10a 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.SplitBlockAlgorithm.html\" title=\"struct parquet::format::SplitBlockAlgorithm\">SplitBlockAlgorithm</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=\"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.FileCryptoMetaData.html\" title=\"struct parquet::format::FileCryptoMetaData\">FileCryptoMetaData</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/f [...]
 "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.CompressionArgs.html\" title=\"enum parquet_rewrite::CompressionArgs\">CompressionArgs</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_rewrite/e [...]
 };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 43f0504991..776df34d82 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 <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\">OwnedRow</a>"],["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< [...]
 "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=\"enum\" href=\"arrow_schema/datatype/enum.IntervalUnit.html\" title=\"enum arrow_schema::datatype::IntervalUnit\">IntervalUnit</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=\"arrow_schema/datatype/enum.DataType.html\" [...]
-"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.EncryptionWithFooterKey.html\" title=\"struct parquet::format::EncryptionWithFooterKey\">EncryptionWithFooterKey</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/file/propertie [...]
+"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=\"enum\" href=\"parquet/format/enum.BloomFilterAlgorithm.html\" title=\"enum parquet::format::BloomFilterAlgorithm\">BloomFilterAlgorithm</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/format/enum.TimeUnit.html\" t [...]
 "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.CompressionArgs.html\" title=\"enum parquet_rewrite::CompressionArgs\">CompressionArgs</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.EnabledStatisticsArgs. [...]
 };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 e89b05bcfb..37a7d4dae6 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/Schema/struct.TimeUnit.html\" title=\"struct arrow_ipc::gen::Schema::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_ipc/gen/Message/struct.MessageHeader.h [...]
 "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=\"struct\" href=\"arrow_schema/fields/struct.Fields.html\" title=\"struct arrow_schema::fields::Fields\">Fields</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/fields/struct.UnionFields.html\" titl [...]
-"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.KeyValue.html\" title=\"struct parquet::format::KeyValue\">KeyValue</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.XxHash.html\" title=\"struct parquet: [...]
+"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.MilliSeconds.html\" title=\"struct parquet::format::MilliSeconds\">MilliSeconds</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.ConvertedType.html\" titl [...]
 "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.CompressionArgs.html\" title=\"enum parquet_rewrite::CompressionArgs\">CompressionArgs</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/enum.EnabledStatistic [...]
 };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 c9417c66fe..a1bf574750 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=\"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.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" href=\"arrow_schema [...]
-"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.FieldRepetitionType.html\" title=\"struct parquet::format::FieldRepetitionType\">FieldRepetitionType</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 [...]
+"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.NullType.html\" title=\"struct parquet::format::NullType\">NullType</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=\"parquet/format/struct.S [...]
 "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.Type.html\" title=\"enum parquet_derive::parquet_field::Type\">Type</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=\"parquet_ [...]
 "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 a18165ffc7..378dca7c1d 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/Schema/struct.UnionMode.html\" title=\"struct arrow_ipc::gen::Schema::UnionMode\">UnionMode</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_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/fields/struct.UnionFields.html\" title=\"struct arrow_schema::fields::UnionFields\">UnionFields</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\"  [...]
-"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.PageType.html\" title=\"struct parquet::format::PageType\">PageType</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/format/st [...]
+"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.XxHash.html\" title=\"struct parquet::format::XxHash\">XxHash</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\" href=\"parquet/format/enum.Bloom [...]
 "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.EnabledStatisticsArgs.html\" title=\"enum parquet_rewrite::EnabledStatisticsArgs\">EnabledStatisticsArgs</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 [...]
 };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 f4e599e7a7..fae2c59bcf 100644
--- a/trait.impl/core/convert/trait.From.js
+++ b/trait.impl/core/convert/trait.From.js
@@ -1,6 +1,6 @@
 (function() {var implementors = {
 "arrow":[["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/pyarrow/struct.ArrowException.html\" title=\"struct arrow::pyarrow::ArrowException\">ArrowException</a>&gt; for PyErr"],["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=\"a [...]
-"arrow_array":[["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=\"arrow_array/array/struct_array/struct.StructArray.html\" title=\"struct arrow_array::array::struct_array::StructArray\">StructArray</a>&gt; for <a class=\"struct\" href=\"arrow_array/record_batch/struct.RecordBatch.html\" title=\"struct arrow_array::record_batch::RecordBatch\">RecordBatch</a>"],["impl < [...]
+"arrow_array":[["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=\"arrow_array/array/struct_array/struct.StructArray.html\" title=\"struct arrow_array::array::struct_array::StructArray\">StructArray</a>&gt; for <a class=\"struct\" href=\"arrow_array/record_batch/struct.RecordBatch.html\" title=\"struct arrow_array::record_batch::RecordBatch\">RecordBatch</a>"],["impl < [...]
 "arrow_buffer":[["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=\"primitive\" href=\"https://doc.rust-lang.org/nightly/std/primitive.bool.html\">bool</a>&gt;&gt; for <a class=\"struct\" href=\"arrow_buffer/buffer/boolean/struct.BooleanBuffer.html\" tit [...]
 "arrow_cast":[["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/core/fmt/struct.Error.html\" title=\"struct core::fmt::Error\">Error</a>&gt; for <a class=\"enum\" href=\"arrow_cast/display/enum.FormatError.html\" title=\"enum arrow_cast::display::FormatError\">FormatError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.o [...]
 "arrow_data":[["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=\"arrow_data/data/struct.ArrayData.html\" title=\"struct arrow_data::data::ArrayData\">ArrayData</a>&gt; for <a class=\"struct\" href=\"arrow_data/data/struct.ArrayDataBuilder.html\" title=\"struct arrow_data::data::ArrayDataBuilder\">ArrayDataBuilder</a>"]],
@@ -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=\"arrow_schema/fields/struct.Fields.html\" title=\"struct arrow_schema::fields::Fields\">Fields</a>&gt; for <a class=\"struct\" href=\"arrow_schema/schema/struct.SchemaBuilder.html\" title=\"struct arrow_schema::schema::SchemaBuilder\">SchemaBuilder</a>"],["impl <a class=\"trait\" href=\"https://doc.rust [...]
-"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=\"enum\" href=\"parquet/basic/enum.Repetition.html\" title=\"enum parquet::basic::Repetition\">Repetition</a>&gt; for <a class=\"struct\" href=\"parquet/format/struct.FieldRepetitionType.html\" title=\"struct parquet::format::FieldRepetitionType\">FieldRepetitionType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-la [...]
+"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=\"enum\" href=\"parquet/errors/enum.ParquetError.html\" title=\"enum parquet::errors::ParquetError\">ParquetError</a>&gt; for <a class=\"enum\" href=\"arrow_schema/error/enum.ArrowError.html\" title=\"enum arrow_schema::error::ArrowError\">ArrowError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/co [...]
 "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=\"arrow_schema/error/enum.ArrowError.html\" title=\"enum arrow_schema::error::ArrowError\">ArrowError</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 a4a0b93738..94493ca5eb 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/enum.SqlSupportedGroupBy.html\" title=\"enum arrow_flight::sql::gen::SqlSupportedGroupBy\">SqlSupportedGroupBy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lan [...]
 "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=\"enum\" href=\"arrow_schema/datatype/enum.DataType.html\" title=\"enum arrow_schema::datatype::DataType\">DataType</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= [...]
-"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=\"https://doc.rust-lang.org/nightly/std/fs/struct.File.html\" title=\"struct std::fs::File\">File</a>&gt; for <a class=\"struct\" href=\"parquet/file/serialized_reader/struct.SerializedFileReader.html\" title=\"struct parquet::file::serialized_reader::SerializedFileReader\">SerializedFileReader</a>&l [...]
+"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.Type.html\" title=\"struct parquet::format::Type\">Type</a>&gt; for <a class=\"enum\" href=\"parquet/basic/enum.Type.html\" title=\"enum parquet::basic::Type\">Type</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html\" title [...]
 };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 358fdcf2a3..21053f9898 100644
--- a/trait.impl/core/default/trait.Default.js
+++ b/trait.impl/core/default/trait.Default.js
@@ -12,5 +12,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/schema/struct.SchemaBuilder.html\" title=\"struct arrow_schema::schema::SchemaBuilder\">SchemaBuilder</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=\"struc [...]
 "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.UUIDType.html\" title=\"struct parquet::format::UUIDType\">UUIDType</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/arrow/arrow [...]
+"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/arrow/arrow_reader/struct.ArrowReaderOptions.html\" title=\"struct parquet::arrow::arrow_reader::ArrowReaderOptions\">ArrowReaderOptions</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default [...]
 };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 300bb09980..e9560d0df1 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.ClientArgs.html\" title=\"struct flight_sql_client::ClientArgs\">ClientArgs</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=\"flight_sql_client/enum.Comma [...]
 "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=\"struct\" href=\"flight_test_integration_client/struct.Args.html\" title=\"struct flight_test_integration_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=\"enum\" href=\"flight_ [...]
 "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/schema/types/enum.Type.html\" title=\"enum parquet::schema::types::Type\">Type</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/schema/types/struct.BasicTypeInfo.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=\"struct\" href=\"parquet/format/struct.AesGcmV1.html\" title=\"struct parquet::format::AesGcmV1\">AesGcmV1</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.ColumnOrder.html\" title=\"en [...]
 "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 3e2161aa3b..7b4d41e105 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=\"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/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"arrow_schema/schema/struct.Sche [...]
 "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/record/reader/enum.Reader.html\" title=\"enum parquet::record::reader::Reader\">Reader</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/file/statistics/enum.Stati [...]
+"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=\"struct\" href=\"parquet/schema/types/struct.ColumnPath.html\" title=\"struct parquet::schema::types::ColumnPath\">ColumnPath</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 [...]
 "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 759812a021..2e1639723a 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.UnionMode.html\" title=\"struct arrow_ipc::gen::Schema::UnionMode\">UnionMode</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/struct.Fea [...]
 "arrow_row":[["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_row::Row\">Row</a>&lt;'a&gt;"],["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 [...]
 "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=\"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/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"struct\" href=\"arrow_schema/fields/struct.Fields.ht [...]
-"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.NullType.html\" title=\"struct parquet::format::NullType\">NullType</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/struct.Encoding.html\" title=\"str [...]
+"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/basic/enum.Encoding.html\" title=\"enum parquet::basic::Encoding\">Encoding</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/struct.StringType.html\" title=\"struct pa [...]
 };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 0f144dee79..8fa46ae7c9 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 <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/file/reader/struct.FilePageIterator.html\" title=\"struct parquet::file::reader::FilePageIterator\">FilePageIterator</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::i [...]
+"parquet":[["impl&lt;R: <a class=\"trait\" href=\"parquet/file/reader/trait.ChunkReader.html\" title=\"trait parquet::file::reader::ChunkReader\">ChunkReader</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/file/serialized_reader/struct.SerializedPageReader.html\" title=\"struct parquet::file::serialized_reader::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/marker/trait.Copy.js b/trait.impl/core/marker/trait.Copy.js
index 3f8d935ab3..6cb319c26e 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=\"enum\" href=\"parquet/file/properties/enum.WriterVersion.html\" title=\"enum parquet::file::properties::WriterVersion\">WriterVersion</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/e [...]
+"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=\"enum\" href=\"parquet/file/properties/enum.EnabledStatistics.html\" title=\"enum parquet::file::properties::EnabledStatistics\">EnabledStatistics</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=\"par [...]
 "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.RecordTerminator.html\" title=\"enum parquet_fromcsv::RecordTerminator\">RecordTerminator</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/ [...]
 "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 04dabd1dc9..af90901e4d 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/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.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=\"enum\" href=\"parquet/file/properties/enum.WriterVersion.html\" title=\"enum parquet::file::properties::WriterVersion\">WriterVersion</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq< [...]
+"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.CompressionCodec.html\" title=\"struct parquet::format::CompressionCodec\">CompressionCodec</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a>  [...]
 "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 e0d550019d..245af66ce2 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/fields/struct.Fields.html\" title=\"struct arrow_schema::fields::Fields\">Fields</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/basic/enum.Encoding.html\" title=\"enum parquet::basic::Encoding\">Encoding</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPart [...]
+"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.MapType.html\" title=\"struct parquet::format::MapType\">MapType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">Structura [...]
 "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 707bb2ffea..25b1a1675d 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/file/properties/enum.WriterVersion.html\" title=\"enum parquet::file::properties::WriterVersion\">WriterVersion</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 c [...]
+"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.LogicalType.html\" title=\"enum parquet::basic::LogicalType\">LogicalType</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 [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/parquet/arrow/record_reader/buffer/trait.BufferQueue.js b/trait.impl/parquet/arrow/record_reader/buffer/trait.BufferQueue.js
deleted file mode 100644
index c2c1c12605..0000000000
--- a/trait.impl/parquet/arrow/record_reader/buffer/trait.BufferQueue.js
+++ /dev/null
@@ -1,3 +0,0 @@
-(function() {var implementors = {
-"parquet":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/parquet/column/reader/decoder/trait.LevelsBufferSlice.js b/trait.impl/parquet/column/reader/decoder/trait.LevelsBufferSlice.js
deleted file mode 100644
index c2c1c12605..0000000000
--- a/trait.impl/parquet/column/reader/decoder/trait.LevelsBufferSlice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-(function() {var implementors = {
-"parquet":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/trait.impl/parquet/column/reader/decoder/trait.ValuesBufferSlice.js b/trait.impl/parquet/column/reader/decoder/trait.ValuesBufferSlice.js
deleted file mode 100644
index c2c1c12605..0000000000
--- a/trait.impl/parquet/column/reader/decoder/trait.ValuesBufferSlice.js
+++ /dev/null
@@ -1,3 +0,0 @@
-(function() {var implementors = {
-"parquet":[]
-};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/type.impl/alloc/vec/struct.Vec.js b/type.impl/alloc/vec/struct.Vec.js
index 72cc525682..c172c62fb0 100644
--- a/type.impl/alloc/vec/struct.Vec.js
+++ b/type.impl/alloc/vec/struct.Vec.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Vec%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/alloc/vec/mod.rs.html#407\">source</a><a href=\"#impl-Vec%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;T&gt; <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html\" title=\"struct alloc::vec::Vec\">Vec</a>&lt;T&gt;</h3></section></summary><div cla [...]
+"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-Vec%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"https://doc.rust-lang.org/nightly/src/alloc/vec/mod.rs.html#407\">source</a><a href=\"#impl-Vec%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;T&gt; <a class=\"struct\" href=\"https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html\" title=\"struct alloc::vec::Vec\">Vec</a>&lt;T&gt;</h3></section></summary><div cla [...]
 };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/arrow_array/array/byte_array/struct.GenericByteArray.js b/type.impl/arrow_array/array/byte_array/struct.GenericByteArray.js
index 780f2c8d29..ec76b3b793 100644
--- a/type.impl/arrow_array/array/byte_array/struct.GenericByteArray.js
+++ b/type.impl/arrow_array/array/byte_array/struct.GenericByteArray.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-GenericByteArray%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/byte_array.rs.html#105-415\">source</a><a href=\"#impl-GenericByteArray%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;T: <a class=\"trait\" href=\"arrow_array/types/trait.ByteArrayType.html\" title=\"trait arrow_array::types::ByteArrayType\">ByteArrayType</a>&gt; <a class=\"struc [...]
+"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-GenericByteArray%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/byte_array.rs.html#105-415\">source</a><a href=\"#impl-GenericByteArray%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;T: <a class=\"trait\" href=\"arrow_array/types/trait.ByteArrayType.html\" title=\"trait arrow_array::types::ByteArrayType\">ByteArrayType</a>&gt; <a class=\"struc [...]
 };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/arrow_array/array/dictionary_array/struct.DictionaryArray.js b/type.impl/arrow_array/array/dictionary_array/struct.DictionaryArray.js
index df2cceabdc..be77576f54 100644
--- a/type.impl/arrow_array/array/dictionary_array/struct.DictionaryArray.js
+++ b/type.impl/arrow_array/array/dictionary_array/struct.DictionaryArray.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-DictionaryArray%3CK%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/dictionary_array.rs.html#270-567\">source</a><a href=\"#impl-DictionaryArray%3CK%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;K: <a class=\"trait\" href=\"arrow_array/types/trait.ArrowDictionaryKeyType.html\" title=\"trait arrow_array::types::ArrowDictionaryKeyType\">ArrowDictionaryK [...]
+"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-DictionaryArray%3CK%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/dictionary_array.rs.html#270-567\">source</a><a href=\"#impl-DictionaryArray%3CK%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;K: <a class=\"trait\" href=\"arrow_array/types/trait.ArrowDictionaryKeyType.html\" title=\"trait arrow_array::types::ArrowDictionaryKeyType\">ArrowDictionaryK [...]
 };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/arrow_array/array/list_array/struct.GenericListArray.js b/type.impl/arrow_array/array/list_array/struct.GenericListArray.js
index 66e4360a84..be5c1e5107 100644
--- a/type.impl/arrow_array/array/list_array/struct.GenericListArray.js
+++ b/type.impl/arrow_array/array/list_array/struct.GenericListArray.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-GenericListArray%3COffsetSize%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/list_array.rs.html#145-371\">source</a><a href=\"#impl-GenericListArray%3COffsetSize%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;OffsetSize: <a class=\"trait\" href=\"arrow_array/array/list_array/trait.OffsetSizeTrait.html\" title=\"trait arrow_array::array::list_array::Of [...]
+"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-GenericListArray%3COffsetSize%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/list_array.rs.html#145-371\">source</a><a href=\"#impl-GenericListArray%3COffsetSize%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;OffsetSize: <a class=\"trait\" href=\"arrow_array/array/list_array/trait.OffsetSizeTrait.html\" title=\"trait arrow_array::array::list_array::Of [...]
 };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/arrow_array/array/primitive_array/struct.PrimitiveArray.js b/type.impl/arrow_array/array/primitive_array/struct.PrimitiveArray.js
index cff0ee4a79..4233cf16ab 100644
--- a/type.impl/arrow_array/array/primitive_array/struct.PrimitiveArray.js
+++ b/type.impl/arrow_array/array/primitive_array/struct.PrimitiveArray.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-PrimitiveArray%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/primitive_array.rs.html#500-975\">source</a><a href=\"#impl-PrimitiveArray%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;T: <a class=\"trait\" href=\"arrow_array/types/trait.ArrowPrimitiveType.html\" title=\"trait arrow_array::types::ArrowPrimitiveType\">ArrowPrimitiveType</a>&gt;  [...]
+"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-PrimitiveArray%3CT%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/primitive_array.rs.html#500-975\">source</a><a href=\"#impl-PrimitiveArray%3CT%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;T: <a class=\"trait\" href=\"arrow_array/types/trait.ArrowPrimitiveType.html\" title=\"trait arrow_array::types::ArrowPrimitiveType\">ArrowPrimitiveType</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/arrow_array/array/run_array/struct.RunArray.js b/type.impl/arrow_array/array/run_array/struct.RunArray.js
index 773047f325..412292e90f 100644
--- a/type.impl/arrow_array/array/run_array/struct.RunArray.js
+++ b/type.impl/arrow_array/array/run_array/struct.RunArray.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-RunArray%3CR%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/run_array.rs.html#80-255\">source</a><a href=\"#impl-RunArray%3CR%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;R: <a class=\"trait\" href=\"arrow_array/types/trait.RunEndIndexType.html\" title=\"trait arrow_array::types::RunEndIndexType\">RunEndIndexType</a>&gt; <a class=\"struct\" href=\"a [...]
+"arrow_array":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-RunArray%3CR%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/arrow_array/array/run_array.rs.html#80-255\">source</a><a href=\"#impl-RunArray%3CR%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;R: <a class=\"trait\" href=\"arrow_array/types/trait.RunEndIndexType.html\" title=\"trait arrow_array::types::RunEndIndexType\">RunEndIndexType</a>&gt; <a class=\"struct\" href=\"a [...]
 };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/arrow/record_reader/struct.GenericRecordReader.js b/type.impl/parquet/arrow/record_reader/struct.GenericRecordReader.js
index cd46c7bea8..3bb1e60ec4 100644
--- a/type.impl/parquet/arrow/record_reader/struct.GenericRecordReader.js
+++ b/type.impl/parquet/arrow/record_reader/struct.GenericRecordReader.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-GenericRecordReader%3CV,+CV%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/parquet/arrow/record_reader/mod.rs.html#63-72\">source</a><a href=\"#impl-GenericRecordReader%3CV,+CV%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;V, CV&gt; <a class=\"struct\" href=\"parquet/arrow/record_reader/struct.GenericRecordReader.html\" title=\"struct parquet::arrow::record_reader::Generi [...]
+"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-GenericRecordReader%3CV,+CV%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/parquet/arrow/record_reader/mod.rs.html#63-223\">source</a><a href=\"#impl-GenericRecordReader%3CV,+CV%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;V, CV&gt; <a class=\"struct\" href=\"parquet/arrow/record_reader/struct.GenericRecordReader.html\" title=\"struct parquet::arrow::record_reader::Gener [...]
 };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/column/reader/struct.GenericColumnReader.js b/type.impl/parquet/column/reader/struct.GenericColumnReader.js
index 9b503f4574..60add2fb99 100644
--- a/type.impl/parquet/column/reader/struct.GenericColumnReader.js
+++ b/type.impl/parquet/column/reader/struct.GenericColumnReader.js
@@ -1,3 +1,3 @@
 (function() {var type_impls = {
-"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-GenericColumnReader%3CRepetitionLevelDecoderImpl,+DefinitionLevelDecoderImpl,+V%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/parquet/column/reader.rs.html#131-153\">source</a><a href=\"#impl-GenericColumnReader%3CRepetitionLevelDecoderImpl,+DefinitionLevelDecoderImpl,+V%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;V&gt; <a class=\"struct\" href=\"parquet/column/reader/ [...]
+"parquet":[["<details class=\"toggle implementors-toggle\" open><summary><section id=\"impl-GenericColumnReader%3CRepetitionLevelDecoderImpl,+DefinitionLevelDecoderImpl,+V%3E\" class=\"impl\"><a class=\"src rightside\" href=\"src/parquet/column/reader.rs.html#131-153\">source</a><a href=\"#impl-GenericColumnReader%3CRepetitionLevelDecoderImpl,+DefinitionLevelDecoderImpl,+V%3E\" class=\"anchor\">§</a><h3 class=\"code-header\">impl&lt;V&gt; <a class=\"struct\" href=\"parquet/column/reader/ [...]
 };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/file/statistics/struct.ValueStatistics.js b/type.impl/parquet/file/statistics/struct.ValueStatistics.js
index ac30cd1535..5381d549a2 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 d5c51dde63..c05f0b0618 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