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 2eda5ab474 deploy: 810291179f65d63a5c49ed6b7881bc5788d85a9e
2eda5ab474 is described below

commit 2eda5ab474604f87113e02422a02307702f8aa94
Author: tustvold <[email protected]>
AuthorDate: Thu Aug 17 09:52:14 2023 +0000

    deploy: 810291179f65d63a5c49ed6b7881bc5788d85a9e
---
 arrow/compute/fn.take.html                         |   7 +-
 arrow/compute/kernels/take/fn.take.html            |   7 +-
 arrow/compute/kernels/take/struct.TakeOptions.html |   4 +-
 arrow/compute/struct.TakeOptions.html              |   4 +-
 .../cast/fn.cast_binary_to_fixed_size_binary.html  |   2 +-
 arrow_cast/cast/fn.cast_binary_to_string.html      |   2 +-
 arrow_cast/cast/fn.cast_byte_container.html        |   2 +-
 .../cast/fn.cast_fixed_size_binary_to_binary.html  |   2 +-
 .../cast/fn.cast_fixed_size_list_to_list.html      |   2 +-
 arrow_cast/cast/fn.cast_list_container.html        |   2 +-
 arrow_cast/cast/fn.cast_list_inner.html            |   2 +-
 arrow_cast/cast/fn.cast_to_dictionary.html         |   2 +-
 arrow_cast/cast/fn.cast_values_to_list.html        |   2 +-
 arrow_cast/cast/fn.pack_byte_to_dictionary.html    |   2 +-
 arrow_cast/cast/fn.pack_numeric_to_dictionary.html |   2 +-
 arrow_cast/cast/fn.unpack_dictionary.html          |   2 +-
 arrow_cast/cast/index.html                         |   2 +-
 arrow_select/all.html                              |   2 +-
 arrow_select/take/fn.check_bounds.html             |   5 +
 arrow_select/take/fn.maybe_usize.html              |   2 +-
 arrow_select/take/fn.take.html                     |   4 +-
 arrow_select/take/fn.take_bits.html                |   2 +-
 arrow_select/take/fn.take_boolean.html             |   2 +-
 arrow_select/take/fn.take_bytes.html               |   2 +-
 arrow_select/take/fn.take_dict.html                |   2 +-
 arrow_select/take/fn.take_fixed_size_binary.html   |   2 +-
 arrow_select/take/fn.take_fixed_size_list.html     |   2 +-
 arrow_select/take/fn.take_impl.html                |   5 +-
 arrow_select/take/fn.take_list.html                |   2 +-
 arrow_select/take/fn.take_native.html              |   2 +-
 arrow_select/take/fn.take_nulls.html               |   2 +-
 arrow_select/take/fn.take_primitive.html           |   2 +-
 arrow_select/take/fn.take_run.html                 |   2 +-
 ...fn.take_value_indices_from_fixed_size_list.html |   2 +-
 .../take/fn.take_value_indices_from_list.html      |   2 +-
 arrow_select/take/index.html                       |   5 +-
 arrow_select/take/macro.to_indices_identity!.html  |  11 +
 arrow_select/take/macro.to_indices_identity.html   |   3 +
 .../take/macro.to_indices_reinterpret!.html        |  11 +
 .../take/macro.to_indices_reinterpret.html         |   3 +
 arrow_select/take/macro.to_indices_widening!.html  |  11 +
 arrow_select/take/macro.to_indices_widening.html   |   3 +
 arrow_select/take/sidebar-items.js                 |   2 +-
 arrow_select/take/struct.TakeOptions.html          |   4 +-
 arrow_select/take/trait.ToIndices.html             |   8 +
 implementors/arrow_select/take/trait.ToIndices.js  |   3 +
 search-index.js                                    |   4 +-
 src/arrow_cast/cast.rs.html                        |  28 +--
 src/arrow_select/take.rs.html                      | 230 +++++++++++++++++----
 49 files changed, 300 insertions(+), 118 deletions(-)

diff --git a/arrow/compute/fn.take.html b/arrow/compute/fn.take.html
index cd02b41d87..73b81c3dbf 100644
--- a/arrow/compute/fn.take.html
+++ b/arrow/compute/fn.take.html
@@ -1,9 +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="Take 
elements by index from Array, creating a new Array from those 
indexes."><title>take in arrow::compute - Rust</title><link rel="preload" 
as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="font" typ [...]
+<!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="Take 
elements by index from Array, creating a new Array from those 
indexes."><title>take in arrow::compute - Rust</title><link rel="preload" 
as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="font" typ [...]
     values: &amp;dyn <a class="trait" href="../array/trait.Array.html" 
title="trait arrow::array::Array">Array</a>,
-    indices: &amp;<a class="struct" href="../array/struct.PrimitiveArray.html" 
title="struct arrow::array::PrimitiveArray">PrimitiveArray</a>&lt;IndexType&gt;,
+    indices: &amp;dyn <a class="trait" href="../array/trait.Array.html" 
title="trait arrow::array::Array">Array</a>,
     options: <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="struct.TakeOptions.html" title="struct 
arrow::compute::TakeOptions">TakeOptions</a>&gt;
-) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"; 
title="struct alloc::sync::Arc">Arc</a>&lt;dyn <a class="trait" 
href="../array/trait.Array.html" title="trait arrow::array::Array">Array</a>, 
<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html"; 
title="struct alloc::alloc::Glob [...]
-    IndexType: <a class="trait" 
href="../datatypes/trait.ArrowPrimitiveType.html" title="trait 
arrow::datatypes::ArrowPrimitiveType">ArrowPrimitiveType</a>,</span></code></pre><details
 class="toggle top-doc" open><summary class="hideme"><span>Expand 
description</span></summary><div class="docblock"><p>Take elements by index 
from <a href="../array/trait.Array.html" title="trait 
arrow::array::Array">Array</a>, creating a new <a 
href="../array/trait.Array.html" title="trait arrow::array::Ar [...]
+) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"; 
title="struct alloc::sync::Arc">Arc</a>&lt;dyn <a class="trait" 
href="../array/trait.Array.html" title="trait arrow::array::Array">Array</a>, 
<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html"; 
title="struct alloc::alloc::Glob [...]
 <div class="example-wrap"><pre class="language-text"><code>┌─────────────────┐ 
     ┌─────────┐                              ┌─────────────────┐
 │        A        │      │    0    │                              │        A   
     │
 ├─────────────────┤      ├─────────┤                              
├─────────────────┤
diff --git a/arrow/compute/kernels/take/fn.take.html 
b/arrow/compute/kernels/take/fn.take.html
index d6fe6f2a40..ff9a8f01cb 100644
--- a/arrow/compute/kernels/take/fn.take.html
+++ b/arrow/compute/kernels/take/fn.take.html
@@ -1,9 +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="Take 
elements by index from Array, creating a new Array from those 
indexes."><title>take in arrow::compute::kernels::take - 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="Take 
elements by index from Array, creating a new Array from those 
indexes."><title>take in arrow::compute::kernels::take - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link
 rel="p [...]
     values: &amp;dyn <a class="trait" href="../../../array/trait.Array.html" 
title="trait arrow::array::Array">Array</a>,
-    indices: &amp;<a class="struct" 
href="../../../array/struct.PrimitiveArray.html" title="struct 
arrow::array::PrimitiveArray">PrimitiveArray</a>&lt;IndexType&gt;,
+    indices: &amp;dyn <a class="trait" href="../../../array/trait.Array.html" 
title="trait arrow::array::Array">Array</a>,
     options: <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="../../struct.TakeOptions.html" title="struct 
arrow::compute::TakeOptions">TakeOptions</a>&gt;
-) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"; 
title="struct alloc::sync::Arc">Arc</a>&lt;dyn <a class="trait" 
href="../../../array/trait.Array.html" title="trait 
arrow::array::Array">Array</a>, <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html"; 
title="struct alloc::alloc [...]
-    IndexType: <a class="trait" 
href="../../../datatypes/trait.ArrowPrimitiveType.html" title="trait 
arrow::datatypes::ArrowPrimitiveType">ArrowPrimitiveType</a>,</span></code></pre><details
 class="toggle top-doc" open><summary class="hideme"><span>Expand 
description</span></summary><div class="docblock"><p>Take elements by index 
from <a href="../../../array/trait.Array.html" title="trait 
arrow::array::Array">Array</a>, creating a new <a 
href="../../../array/trait.Array.html" title="trai [...]
+) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"; 
title="struct alloc::sync::Arc">Arc</a>&lt;dyn <a class="trait" 
href="../../../array/trait.Array.html" title="trait 
arrow::array::Array">Array</a>, <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html"; 
title="struct alloc::alloc [...]
 <div class="example-wrap"><pre class="language-text"><code>┌─────────────────┐ 
     ┌─────────┐                              ┌─────────────────┐
 │        A        │      │    0    │                              │        A   
     │
 ├─────────────────┤      ├─────────┤                              
├─────────────────┤
diff --git a/arrow/compute/kernels/take/struct.TakeOptions.html 
b/arrow/compute/kernels/take/struct.TakeOptions.html
index ee33dc573b..249bfbdbe9 100644
--- a/arrow/compute/kernels/take/struct.TakeOptions.html
+++ b/arrow/compute/kernels/take/struct.TakeOptions.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="Options 
that define how `take` should behave"><title>TakeOptions in 
arrow::compute::kernels::take - 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="Options 
that define how `take` should behave"><title>TakeOptions in 
arrow::compute::kernels::take - 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=" [...]
     pub check_bounds: <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>Options that define how <code>take</code> should behave</p>
 </div></details><h2 id="fields" class="fields small-section-header">Fields<a 
href="#fields" class="anchor">§</a></h2><span id="structfield.check_bounds" 
class="structfield small-section-header"><a href="#structfield.check_bounds" 
class="anchor field">§</a><code>check_bounds: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></code></span><div
 class="docblock"><p>Perform bounds check before taking indices from values.
 If enabled, an <code>ArrowError</code> is returned if the indices are out of 
bounds.
 If not enabled, and indices exceed bounds, the kernel will panic.</p>
-</div><h2 id="trait-implementations" class="small-section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-TakeOptions" class="impl"><a 
class="src rightside" 
href="../../../../src/arrow_select/take.rs.html#215">source</a><a 
href="#impl-Clone-for-TakeOptions" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href=" [...]
+</div><h2 id="trait-implementations" class="small-section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-TakeOptions" class="impl"><a 
class="src rightside" 
href="../../../../src/arrow_select/take.rs.html#231">source</a><a 
href="#impl-Clone-for-TakeOptions" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href=" [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait 
core::marker::Sized">Sized</a>,</span></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#136";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a hre 
[...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait 
core::marker::Sized">Sized</a>,</span></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210";>source</a><a
 href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a 
href="https: [...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait 
core::marker::Sized">Sized</a>,</span></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow_mut" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217";>source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href [...]
diff --git a/arrow/compute/struct.TakeOptions.html 
b/arrow/compute/struct.TakeOptions.html
index 416e32c1ad..7dde570e5c 100644
--- a/arrow/compute/struct.TakeOptions.html
+++ b/arrow/compute/struct.TakeOptions.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="Options 
that define how `take` should behave"><title>TakeOptions in arrow::compute - 
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" crossorig [...]
+<!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="Options 
that define how `take` should behave"><title>TakeOptions in arrow::compute - 
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" crossorig [...]
     pub check_bounds: <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>Options that define how <code>take</code> should behave</p>
 </div></details><h2 id="fields" class="fields small-section-header">Fields<a 
href="#fields" class="anchor">§</a></h2><span id="structfield.check_bounds" 
class="structfield small-section-header"><a href="#structfield.check_bounds" 
class="anchor field">§</a><code>check_bounds: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></code></span><div
 class="docblock"><p>Perform bounds check before taking indices from values.
 If enabled, an <code>ArrowError</code> is returned if the indices are out of 
bounds.
 If not enabled, and indices exceed bounds, the kernel will panic.</p>
-</div><h2 id="trait-implementations" class="small-section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-TakeOptions" class="impl"><a 
class="src rightside" 
href="../../src/arrow_select/take.rs.html#215">source</a><a 
href="#impl-Clone-for-TakeOptions" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href="https: [...]
+</div><h2 id="trait-implementations" class="small-section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-TakeOptions" class="impl"><a 
class="src rightside" 
href="../../src/arrow_select/take.rs.html#231">source</a><a 
href="#impl-Clone-for-TakeOptions" 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>,</span></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#136";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a hre 
[...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait 
core::marker::Sized">Sized</a>,</span></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210";>source</a><a
 href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a 
href="https: [...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait 
core::marker::Sized">Sized</a>,</span></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow_mut" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217";>source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href [...]
diff --git a/arrow_cast/cast/fn.cast_binary_to_fixed_size_binary.html 
b/arrow_cast/cast/fn.cast_binary_to_fixed_size_binary.html
index 39e740cb07..349ad42db8 100644
--- a/arrow_cast/cast/fn.cast_binary_to_fixed_size_binary.html
+++ b/arrow_cast/cast/fn.cast_binary_to_fixed_size_binary.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 to cast from one `BinaryArray` or ‘LargeBinaryArray’ to 
‘FixedSizeBinaryArray’."><title>cast_binary_to_fixed_size_binary in 
arrow_cast::cast - Rust</title><link rel="preload" as="font" type="font/woff2" 
crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafa [...]
+<!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 to cast from one `BinaryArray` or ‘LargeBinaryArray’ to 
‘FixedSizeBinaryArray’."><title>cast_binary_to_fixed_size_binary in 
arrow_cast::cast - Rust</title><link rel="preload" as="font" type="font/woff2" 
crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafa [...]
     array: &amp;dyn Array,
     byte_width: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>,
     cast_options: &amp;<a class="struct" href="struct.CastOptions.html" 
title="struct arrow_cast::cast::CastOptions">CastOptions</a>&lt;'_&gt;
diff --git a/arrow_cast/cast/fn.cast_binary_to_string.html 
b/arrow_cast/cast/fn.cast_binary_to_string.html
index 622bd0f1a0..4ad011d360 100644
--- a/arrow_cast/cast/fn.cast_binary_to_string.html
+++ b/arrow_cast/cast/fn.cast_binary_to_string.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 
specified helper to cast from `GenericBinaryArray` to `GenericStringArray` when 
they have same offset size so re-encoding offset is 
unnecessary."><title>cast_binary_to_string in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../stati [...]
+<!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 
specified helper to cast from `GenericBinaryArray` to `GenericStringArray` when 
they have same offset size so re-encoding offset is 
unnecessary."><title>cast_binary_to_string in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../stati [...]
     array: &amp;dyn Array,
     cast_options: &amp;<a class="struct" href="struct.CastOptions.html" 
title="struct arrow_cast::cast::CastOptions">CastOptions</a>&lt;'_&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;ArrayRef, 
ArrowError&gt;</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>A specified helper to cast from 
<code>GenericBinaryArray</code> to <code>GenericStringArray</code> when they 
have same
diff --git a/arrow_cast/cast/fn.cast_byte_container.html 
b/arrow_cast/cast/fn.cast_byte_container.html
index b3a5c2c3a3..e21758185a 100644
--- a/arrow_cast/cast/fn.cast_byte_container.html
+++ b/arrow_cast/cast/fn.cast_byte_container.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 to cast from one `ByteArrayType` to another and vice versa. If the 
target one (e.g., `LargeUtf8`) is too large for the source array it will return 
an Error."><title>cast_byte_container in arrow_cast::cast - Rust</title><link 
rel="preload" as="font" type="font/woff2" cross [...]
+<!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 to cast from one `ByteArrayType` to another and vice versa. If the 
target one (e.g., `LargeUtf8`) is too large for the source array it will return 
an Error."><title>cast_byte_container in arrow_cast::cast - Rust</title><link 
rel="preload" as="font" type="font/woff2" cross [...]
     array: &amp;dyn Array
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;ArrayRef, ArrowError&gt;<span 
class="where fmt-newline">where
     FROM: ByteArrayType,
diff --git a/arrow_cast/cast/fn.cast_fixed_size_binary_to_binary.html 
b/arrow_cast/cast/fn.cast_fixed_size_binary_to_binary.html
index 681fcee454..924b388a22 100644
--- a/arrow_cast/cast/fn.cast_fixed_size_binary_to_binary.html
+++ b/arrow_cast/cast/fn.cast_fixed_size_binary_to_binary.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 to cast from ‘FixedSizeBinaryArray’ to one `BinaryArray` or 
‘LargeBinaryArray’. If the target one is too large for the source array it will 
return an Error."><title>cast_fixed_size_binary_to_binary in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="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="Helper 
function to cast from ‘FixedSizeBinaryArray’ to one `BinaryArray` or 
‘LargeBinaryArray’. If the target one is too large for the source array it will 
return an Error."><title>cast_fixed_size_binary_to_binary in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font [...]
     array: &amp;dyn Array,
     byte_width: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</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;ArrayRef, 
ArrowError&gt;</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>Helper function to cast from ‘FixedSizeBinaryArray’ to one 
<code>BinaryArray</code> or ‘LargeBinaryArray’.
diff --git a/arrow_cast/cast/fn.cast_fixed_size_list_to_list.html 
b/arrow_cast/cast/fn.cast_fixed_size_list_to_list.html
index 7c2e0f3e66..48d89a8d45 100644
--- a/arrow_cast/cast/fn.cast_fixed_size_list_to_list.html
+++ b/arrow_cast/cast/fn.cast_fixed_size_list_to_list.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 `cast_fixed_size_list_to_list` fn in crate 
`arrow_cast`."><title>cast_fixed_size_list_to_list in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.wo [...]
+<!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 `cast_fixed_size_list_to_list` fn in crate 
`arrow_cast`."><title>cast_fixed_size_list_to_list in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.wo [...]
     array: &amp;dyn Array
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;ArrayRef, ArrowError&gt;<span 
class="where fmt-newline">where
     OffsetSize: 
OffsetSizeTrait,</span></code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_cast/cast/fn.cast_list_container.html 
b/arrow_cast/cast/fn.cast_list_container.html
index bada9608f5..bc7d07d61a 100644
--- a/arrow_cast/cast/fn.cast_list_container.html
+++ b/arrow_cast/cast/fn.cast_list_container.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="Cast the 
container type of List/Largelist array but not the inner types. This function 
can leave the value data intact and only has to cast the offset 
dtypes."><title>cast_list_container in arrow_cast::cast - 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="Cast the 
container type of List/Largelist array but not the inner types. This function 
can leave the value data intact and only has to cast the offset 
dtypes."><title>cast_list_container in arrow_cast::cast - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin href=". [...]
     array: &amp;dyn Array,
     _cast_options: &amp;<a class="struct" href="struct.CastOptions.html" 
title="struct arrow_cast::cast::CastOptions">CastOptions</a>&lt;'_&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;ArrayRef, ArrowError&gt;<span 
class="where fmt-newline">where
diff --git a/arrow_cast/cast/fn.cast_list_inner.html 
b/arrow_cast/cast/fn.cast_list_inner.html
index 4f07112245..87fd108a6d 100644
--- a/arrow_cast/cast/fn.cast_list_inner.html
+++ b/arrow_cast/cast/fn.cast_list_inner.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 takes an Generic list container and casts the inner 
datatype."><title>cast_list_inner in arrow_cast::cast - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="pr [...]
+<!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 takes an Generic list container and casts the inner 
datatype."><title>cast_list_inner in arrow_cast::cast - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="pr [...]
     array: &amp;dyn Array,
     to: &amp;Field,
     to_type: &amp;DataType,
diff --git a/arrow_cast/cast/fn.cast_to_dictionary.html 
b/arrow_cast/cast/fn.cast_to_dictionary.html
index 926d107075..fb39bc434a 100644
--- a/arrow_cast/cast/fn.cast_to_dictionary.html
+++ b/arrow_cast/cast/fn.cast_to_dictionary.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="Attempts 
to encode an array into an `ArrayDictionary` with index type K and value 
(dictionary) type value_type"><title>cast_to_dictionary in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaaf [...]
+<!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="Attempts 
to encode an array into an `ArrayDictionary` with index type K and value 
(dictionary) type value_type"><title>cast_to_dictionary in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaaf [...]
     array: &amp;dyn Array,
     dict_value_type: &amp;DataType,
     cast_options: &amp;<a class="struct" href="struct.CastOptions.html" 
title="struct arrow_cast::cast::CastOptions">CastOptions</a>&lt;'_&gt;
diff --git a/arrow_cast/cast/fn.cast_values_to_list.html 
b/arrow_cast/cast/fn.cast_values_to_list.html
index e68bf04a23..dca60ef207 100644
--- a/arrow_cast/cast/fn.cast_values_to_list.html
+++ b/arrow_cast/cast/fn.cast_values_to_list.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 takes a primitive array and casts to a (generic) list 
array."><title>cast_values_to_list in arrow_cast::cast - 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="Helper 
function that takes a primitive array and casts to a (generic) list 
array."><title>cast_values_to_list in arrow_cast::cast - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel= [...]
     array: &amp;dyn Array,
     to: &amp;FieldRef,
     cast_options: &amp;<a class="struct" href="struct.CastOptions.html" 
title="struct arrow_cast::cast::CastOptions">CastOptions</a>&lt;'_&gt;
diff --git a/arrow_cast/cast/fn.pack_byte_to_dictionary.html 
b/arrow_cast/cast/fn.pack_byte_to_dictionary.html
index ab3eaec7a8..cb3bef4746 100644
--- a/arrow_cast/cast/fn.pack_byte_to_dictionary.html
+++ b/arrow_cast/cast/fn.pack_byte_to_dictionary.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 `pack_byte_to_dictionary` fn in crate 
`arrow_cast`."><title>pack_byte_to_dictionary in arrow_cast::cast - 
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 `pack_byte_to_dictionary` fn in crate 
`arrow_cast`."><title>pack_byte_to_dictionary in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
[...]
     array: &amp;dyn Array,
     cast_options: &amp;<a class="struct" href="struct.CastOptions.html" 
title="struct arrow_cast::cast::CastOptions">CastOptions</a>&lt;'_&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;ArrayRef, ArrowError&gt;<span 
class="where fmt-newline">where
diff --git a/arrow_cast/cast/fn.pack_numeric_to_dictionary.html 
b/arrow_cast/cast/fn.pack_numeric_to_dictionary.html
index 4657532e3d..62ae7fd682 100644
--- a/arrow_cast/cast/fn.pack_numeric_to_dictionary.html
+++ b/arrow_cast/cast/fn.pack_numeric_to_dictionary.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 `pack_numeric_to_dictionary` fn in crate 
`arrow_cast`."><title>pack_numeric_to_dictionary in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2" [...]
+<!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 `pack_numeric_to_dictionary` fn in crate 
`arrow_cast`."><title>pack_numeric_to_dictionary in arrow_cast::cast - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2" [...]
     array: &amp;dyn Array,
     dict_value_type: &amp;DataType,
     cast_options: &amp;<a class="struct" href="struct.CastOptions.html" 
title="struct arrow_cast::cast::CastOptions">CastOptions</a>&lt;'_&gt;
diff --git a/arrow_cast/cast/fn.unpack_dictionary.html 
b/arrow_cast/cast/fn.unpack_dictionary.html
index 252690a672..cce2959589 100644
--- a/arrow_cast/cast/fn.unpack_dictionary.html
+++ b/arrow_cast/cast/fn.unpack_dictionary.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 `unpack_dictionary` fn in crate 
`arrow_cast`."><title>unpack_dictionary in arrow_cast::cast - 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 `unpack_dictionary` fn in crate 
`arrow_cast`."><title>unpack_dictionary in arrow_cast::cast - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preloa [...]
     array: &amp;dyn Array,
     to_type: &amp;DataType,
     cast_options: &amp;<a class="struct" href="struct.CastOptions.html" 
title="struct arrow_cast::cast::CastOptions">CastOptions</a>&lt;'_&gt;
diff --git a/arrow_cast/cast/index.html b/arrow_cast/cast/index.html
index 7ee465a6a3..16cd6186ee 100644
--- a/arrow_cast/cast/index.html
+++ b/arrow_cast/cast/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="Defines 
cast kernels for `ArrayRef`, to convert `Array`s between supported 
datatypes."><title>arrow_cast::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" [...]
+<!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="Defines 
cast kernels for `ArrayRef`, to convert `Array`s between supported 
datatypes."><title>arrow_cast::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" [...]
 supported datatypes.</p>
 <p>Example:</p>
 
diff --git a/arrow_select/all.html b/arrow_select/all.html
index 801e2673e6..fdfc99e629 100644
--- a/arrow_select/all.html
+++ b/arrow_select/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/arrow_select/take/fn.check_bounds.html 
b/arrow_select/take/fn.check_bounds.html
new file mode 100644
index 0000000000..5ef79b4d46
--- /dev/null
+++ b/arrow_select/take/fn.check_bounds.html
@@ -0,0 +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="Verifies 
that the non-null values of `indices` are all `&lt; len`"><title>check_bounds 
in arrow_select::take - Rust</title><link rel="preload" as="font" 
type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="font" t [...]
+    len: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html";>usize</a>,
+    indices: &amp;PrimitiveArray&lt;T&gt;
+) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.unit.html";>()</a>, 
ArrowError&gt;</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>Verifies that the non-null values of <code>indices</code> 
are all <code>&lt; len</code></p>
+</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_select/take/fn.maybe_usize.html 
b/arrow_select/take/fn.maybe_usize.html
index ada621a23b..c3eec9f82a 100644
--- a/arrow_select/take/fn.maybe_usize.html
+++ b/arrow_select/take/fn.maybe_usize.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 `maybe_usize` fn in crate 
`arrow_select`."><title>maybe_usize in arrow_select::take - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="f [...]
\ 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 `maybe_usize` fn in crate 
`arrow_select`."><title>maybe_usize in arrow_select::take - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="f [...]
\ No newline at end of file
diff --git a/arrow_select/take/fn.take.html b/arrow_select/take/fn.take.html
index f2098bbd30..057aa0a6d4 100644
--- a/arrow_select/take/fn.take.html
+++ b/arrow_select/take/fn.take.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="Take 
elements by index from Array, creating a new Array from those 
indexes."><title>take in arrow_select::take - 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="Take 
elements by index from Array, creating a new Array from those 
indexes."><title>take in arrow_select::take - Rust</title><link rel="preload" 
as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="font" [...]
     values: &amp;dyn Array,
-    indices: &amp;PrimitiveArray&lt;IndexType&gt;,
+    indices: &amp;dyn Array,
     options: <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="struct.TakeOptions.html" title="struct 
arrow_select::take::TakeOptions">TakeOptions</a>&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;ArrayRef, 
ArrowError&gt;</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>Take elements by index from [Array], creating a new [Array] 
from those indexes.</p>
 <div class="example-wrap"><pre class="language-text"><code>┌─────────────────┐ 
     ┌─────────┐                              ┌─────────────────┐
diff --git a/arrow_select/take/fn.take_bits.html 
b/arrow_select/take/fn.take_bits.html
index ec215a30d7..f629c2b606 100644
--- a/arrow_select/take/fn.take_bits.html
+++ b/arrow_select/take/fn.take_bits.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 `take_bits` fn in crate 
`arrow_select`."><title>take_bits in arrow_select::take - 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 `take_bits` fn in crate 
`arrow_select`."><title>take_bits in arrow_select::take - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="font" [...]
     values: &amp;BooleanBuffer,
     indices: &amp;PrimitiveArray&lt;I&gt;
 ) -&gt; BooleanBuffer</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_select/take/fn.take_boolean.html 
b/arrow_select/take/fn.take_boolean.html
index 917f5c5988..1379fbc6fa 100644
--- a/arrow_select/take/fn.take_boolean.html
+++ b/arrow_select/take/fn.take_boolean.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="`take` 
implementation for boolean arrays"><title>take_boolean in arrow_select::take - 
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" crossori [...]
+<!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="`take` 
implementation for boolean arrays"><title>take_boolean in arrow_select::take - 
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" crossori [...]
     values: &amp;BooleanArray,
     indices: &amp;PrimitiveArray&lt;IndexType&gt;
 ) -&gt; BooleanArray</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p><code>take</code> implementation for boolean arrays</p>
diff --git a/arrow_select/take/fn.take_bytes.html 
b/arrow_select/take/fn.take_bytes.html
index 6d860d4007..935b455d47 100644
--- a/arrow_select/take/fn.take_bytes.html
+++ b/arrow_select/take/fn.take_bytes.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="`take` 
implementation for string arrays"><title>take_bytes in arrow_select::take - 
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 [...]
+<!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="`take` 
implementation for string arrays"><title>take_bytes in arrow_select::take - 
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 [...]
     array: &amp;GenericByteArray&lt;T&gt;,
     indices: &amp;PrimitiveArray&lt;IndexType&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;GenericByteArray&lt;T&gt;, 
ArrowError&gt;</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p><code>take</code> implementation for string arrays</p>
diff --git a/arrow_select/take/fn.take_dict.html 
b/arrow_select/take/fn.take_dict.html
index 9b988fd800..388e74f44e 100644
--- a/arrow_select/take/fn.take_dict.html
+++ b/arrow_select/take/fn.take_dict.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="`take` 
implementation for dictionary arrays"><title>take_dict in arrow_select::take - 
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" crossori [...]
+<!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="`take` 
implementation for dictionary arrays"><title>take_dict in arrow_select::take - 
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" crossori [...]
     values: &amp;DictionaryArray&lt;T&gt;,
     indices: &amp;PrimitiveArray&lt;I&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;DictionaryArray&lt;T&gt;, 
ArrowError&gt;</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p><code>take</code> implementation for dictionary arrays</p>
diff --git a/arrow_select/take/fn.take_fixed_size_binary.html 
b/arrow_select/take/fn.take_fixed_size_binary.html
index c49605e7d5..2d504130a8 100644
--- a/arrow_select/take/fn.take_fixed_size_binary.html
+++ b/arrow_select/take/fn.take_fixed_size_binary.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 `take_fixed_size_binary` fn in crate 
`arrow_select`."><title>take_fixed_size_binary in arrow_select::take - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><li 
[...]
+<!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 `take_fixed_size_binary` fn in crate 
`arrow_select`."><title>take_fixed_size_binary in arrow_select::take - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><li 
[...]
     values: &amp;FixedSizeBinaryArray,
     indices: &amp;PrimitiveArray&lt;IndexType&gt;,
     size: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>
diff --git a/arrow_select/take/fn.take_fixed_size_list.html 
b/arrow_select/take/fn.take_fixed_size_list.html
index 0a752cb728..7dab5529f5 100644
--- a/arrow_select/take/fn.take_fixed_size_list.html
+++ b/arrow_select/take/fn.take_fixed_size_list.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="`take` 
implementation for `FixedSizeListArray`"><title>take_fixed_size_list in 
arrow_select::take - Rust</title><link rel="preload" as="font" 
type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="font" type="font/w [...]
+<!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="`take` 
implementation for `FixedSizeListArray`"><title>take_fixed_size_list in 
arrow_select::take - Rust</title><link rel="preload" as="font" 
type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="font" type="font/w [...]
     values: &amp;FixedSizeListArray,
     indices: &amp;PrimitiveArray&lt;IndexType&gt;,
     length: &lt;UInt32Type as ArrowPrimitiveType&gt;::Native
diff --git a/arrow_select/take/fn.take_impl.html 
b/arrow_select/take/fn.take_impl.html
index a9f43cca29..217f65c15e 100644
--- a/arrow_select/take/fn.take_impl.html
+++ b/arrow_select/take/fn.take_impl.html
@@ -1,5 +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 `take_impl` fn in crate 
`arrow_select`."><title>take_impl in arrow_select::take - 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 `take_impl` fn in crate 
`arrow_select`."><title>take_impl in arrow_select::take - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="font" [...]
     values: &amp;dyn Array,
-    indices: &amp;PrimitiveArray&lt;IndexType&gt;,
-    options: <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="struct.TakeOptions.html" title="struct 
arrow_select::take::TakeOptions">TakeOptions</a>&gt;
+    indices: &amp;PrimitiveArray&lt;IndexType&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;ArrayRef, 
ArrowError&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_select/take/fn.take_list.html 
b/arrow_select/take/fn.take_list.html
index a465d74c3f..aea3811936 100644
--- a/arrow_select/take/fn.take_list.html
+++ b/arrow_select/take/fn.take_list.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="`take` 
implementation for list arrays"><title>take_list in arrow_select::take - 
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 hr [...]
+<!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="`take` 
implementation for list arrays"><title>take_list in arrow_select::take - 
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 hr [...]
     values: &amp;GenericListArray&lt;OffsetType::Native&gt;,
     indices: &amp;PrimitiveArray&lt;IndexType&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum 
core::result::Result">Result</a>&lt;GenericListArray&lt;OffsetType::Native&gt;, 
ArrowError&gt;<span class="where fmt-newline">where
diff --git a/arrow_select/take/fn.take_native.html 
b/arrow_select/take/fn.take_native.html
index cf732ca337..9669e71a72 100644
--- a/arrow_select/take/fn.take_native.html
+++ b/arrow_select/take/fn.take_native.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 `take_native` fn in crate 
`arrow_select`."><title>take_native in arrow_select::take - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="f [...]
+<!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 `take_native` fn in crate 
`arrow_select`."><title>take_native in arrow_select::take - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="f [...]
     values: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.slice.html";>[T]</a>,
     indices: &amp;PrimitiveArray&lt;I&gt;
 ) -&gt; ScalarBuffer&lt;T&gt;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_select/take/fn.take_nulls.html 
b/arrow_select/take/fn.take_nulls.html
index ffcd6514f8..89918d2bda 100644
--- a/arrow_select/take/fn.take_nulls.html
+++ b/arrow_select/take/fn.take_nulls.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 `take_nulls` fn in crate 
`arrow_select`."><title>take_nulls in arrow_select::take - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="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 `take_nulls` fn in crate 
`arrow_select`."><title>take_nulls in arrow_select::take - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="fon [...]
     values: <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;&amp;NullBuffer&gt;,
     indices: &amp;PrimitiveArray&lt;I&gt;
 ) -&gt; <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;</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_select/take/fn.take_primitive.html 
b/arrow_select/take/fn.take_primitive.html
index 2ddc2865e7..edb7b44e5b 100644
--- a/arrow_select/take/fn.take_primitive.html
+++ b/arrow_select/take/fn.take_primitive.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="`take` 
implementation for all primitive arrays"><title>take_primitive in 
arrow_select::take - 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"  [...]
+<!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="`take` 
implementation for all primitive arrays"><title>take_primitive in 
arrow_select::take - 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"  [...]
     values: &amp;PrimitiveArray&lt;T&gt;,
     indices: &amp;PrimitiveArray&lt;I&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;PrimitiveArray&lt;T&gt;, 
ArrowError&gt;<span class="where fmt-newline">where
diff --git a/arrow_select/take/fn.take_run.html 
b/arrow_select/take/fn.take_run.html
index 5f6f384e61..10e46749e7 100644
--- a/arrow_select/take/fn.take_run.html
+++ b/arrow_select/take/fn.take_run.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="`take` 
implementation for run arrays"><title>take_run in arrow_select::take - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
rel="preload" as="font" type="font/woff2" crossorigin href [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="`take` 
implementation for run arrays"><title>take_run in arrow_select::take - 
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 [...]
     run_array: &amp;RunArray&lt;T&gt;,
     logical_indices: &amp;PrimitiveArray&lt;I&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;RunArray&lt;T&gt;, 
ArrowError&gt;</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p><code>take</code> implementation for run arrays</p>
diff --git a/arrow_select/take/fn.take_value_indices_from_fixed_size_list.html 
b/arrow_select/take/fn.take_value_indices_from_fixed_size_list.html
index 41dabff053..99e98fb96b 100644
--- a/arrow_select/take/fn.take_value_indices_from_fixed_size_list.html
+++ b/arrow_select/take/fn.take_value_indices_from_fixed_size_list.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="Takes/filters a fixed size list array’s inner data using the offsets 
of the list array."><title>take_value_indices_from_fixed_size_list in 
arrow_select::take - Rust</title><link rel="preload" as="font" 
type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaaf [...]
+<!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="Takes/filters a fixed size list array’s inner data using the offsets 
of the list array."><title>take_value_indices_from_fixed_size_list in 
arrow_select::take - Rust</title><link rel="preload" as="font" 
type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaaf [...]
     list: &amp;FixedSizeListArray,
     indices: &amp;PrimitiveArray&lt;IndexType&gt;,
     length: &lt;UInt32Type as ArrowPrimitiveType&gt;::Native
diff --git a/arrow_select/take/fn.take_value_indices_from_list.html 
b/arrow_select/take/fn.take_value_indices_from_list.html
index 1a7077718a..0ff78e9a04 100644
--- a/arrow_select/take/fn.take_value_indices_from_list.html
+++ b/arrow_select/take/fn.take_value_indices_from_list.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="Takes/filters a list array’s inner data using the offsets of the list 
array."><title>take_value_indices_from_list in arrow_select::take - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><lin 
[...]
+<!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="Takes/filters a list array’s inner data using the offsets of the list 
array."><title>take_value_indices_from_list in arrow_select::take - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><lin 
[...]
     list: &amp;GenericListArray&lt;OffsetType::Native&gt;,
     indices: &amp;PrimitiveArray&lt;IndexType&gt;
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum 
core::result::Result">Result</a>&lt;(PrimitiveArray&lt;OffsetType&gt;, <a 
class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;OffsetType::Native&gt;, 
MutableBuffer), ArrowError&gt;<span class="where fmt-newline">where
diff --git a/arrow_select/take/index.html b/arrow_select/take/index.html
index 05353fdf65..b83ad060d1 100644
--- a/arrow_select/take/index.html
+++ b/arrow_select/take/index.html
@@ -1,2 +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="Defines 
take kernel for Array"><title>arrow_select::take - 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.file 
[...]
-</div></details><h2 id="structs" class="small-section-header"><a 
href="#structs">Structs</a></h2><ul class="item-table"><li><div 
class="item-name"><a class="struct" href="struct.TakeOptions.html" 
title="struct arrow_select::take::TakeOptions">TakeOptions</a></div><div 
class="desc docblock-short">Options that define how <code>take</code> should 
behave</div></li></ul><h2 id="functions" class="small-section-header"><a 
href="#functions">Functions</a></h2><ul class="item-table"><li><div class [...]
\ 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="Defines 
take kernel for Array"><title>arrow_select::take - 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.file 
[...]
+</div></details><h2 id="macros" class="small-section-header"><a 
href="#macros">Macros</a></h2><ul class="item-table"><li><div 
class="item-name"><a class="macro" href="macro.to_indices_identity.html" 
title="macro 
arrow_select::take::to_indices_identity">to_indices_identity</a><span 
title="Restricted Visibility">&nbsp;🔒</span> </div></li><li><div 
class="item-name"><a class="macro" href="macro.to_indices_reinterpret.html" 
title="macro arrow_select::take::to_indices_reinterpret">to_indices_r [...]
+only generate for UInt32 and UInt64 and coerce inputs to these 
types</div></li></ul><h2 id="functions" class="small-section-header"><a 
href="#functions">Functions</a></h2><ul class="item-table"><li><div 
class="item-name"><a class="fn" href="fn.check_bounds.html" title="fn 
arrow_select::take::check_bounds">check_bounds</a><span title="Restricted 
Visibility">&nbsp;🔒</span> </div><div class="desc docblock-short">Verifies that 
the non-null values of <code>indices</code> are all <code>&lt; le [...]
\ No newline at end of file
diff --git a/arrow_select/take/macro.to_indices_identity!.html 
b/arrow_select/take/macro.to_indices_identity!.html
new file mode 100644
index 0000000000..eb738ac9f2
--- /dev/null
+++ b/arrow_select/take/macro.to_indices_identity!.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta http-equiv="refresh" content="0;URL=macro.to_indices_identity.html">
+    <title>Redirection</title>
+</head>
+<body>
+    <p>Redirecting to <a 
href="macro.to_indices_identity.html">macro.to_indices_identity.html</a>...</p>
+    <script>location.replace("macro.to_indices_identity.html" + 
location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/arrow_select/take/macro.to_indices_identity.html 
b/arrow_select/take/macro.to_indices_identity.html
new file mode 100644
index 0000000000..88eb29ee93
--- /dev/null
+++ b/arrow_select/take/macro.to_indices_identity.html
@@ -0,0 +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 `to_indices_identity` macro in crate 
`arrow_select`."><title>to_indices_identity in arrow_select::take - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
 [...]
+    (<span class="macro-nonterminal">$t</span>:ty) =&gt; { ... };
+}</pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_select/take/macro.to_indices_reinterpret!.html 
b/arrow_select/take/macro.to_indices_reinterpret!.html
new file mode 100644
index 0000000000..cedb7682f7
--- /dev/null
+++ b/arrow_select/take/macro.to_indices_reinterpret!.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta http-equiv="refresh" 
content="0;URL=macro.to_indices_reinterpret.html">
+    <title>Redirection</title>
+</head>
+<body>
+    <p>Redirecting to <a 
href="macro.to_indices_reinterpret.html">macro.to_indices_reinterpret.html</a>...</p>
+    <script>location.replace("macro.to_indices_reinterpret.html" + 
location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/arrow_select/take/macro.to_indices_reinterpret.html 
b/arrow_select/take/macro.to_indices_reinterpret.html
new file mode 100644
index 0000000000..548fb9b60c
--- /dev/null
+++ b/arrow_select/take/macro.to_indices_reinterpret.html
@@ -0,0 +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 `to_indices_reinterpret` macro in crate 
`arrow_select`."><title>to_indices_reinterpret in arrow_select::take - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"> [...]
+    (<span class="macro-nonterminal">$t</span>:ty, <span 
class="macro-nonterminal">$o</span>:ty) =&gt; { ... };
+}</pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_select/take/macro.to_indices_widening!.html 
b/arrow_select/take/macro.to_indices_widening!.html
new file mode 100644
index 0000000000..7fcc95a77f
--- /dev/null
+++ b/arrow_select/take/macro.to_indices_widening!.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta http-equiv="refresh" content="0;URL=macro.to_indices_widening.html">
+    <title>Redirection</title>
+</head>
+<body>
+    <p>Redirecting to <a 
href="macro.to_indices_widening.html">macro.to_indices_widening.html</a>...</p>
+    <script>location.replace("macro.to_indices_widening.html" + 
location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/arrow_select/take/macro.to_indices_widening.html 
b/arrow_select/take/macro.to_indices_widening.html
new file mode 100644
index 0000000000..03552a530a
--- /dev/null
+++ b/arrow_select/take/macro.to_indices_widening.html
@@ -0,0 +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 `to_indices_widening` macro in crate 
`arrow_select`."><title>to_indices_widening in arrow_select::take - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link 
 [...]
+    (<span class="macro-nonterminal">$t</span>:ty, <span 
class="macro-nonterminal">$o</span>:ty) =&gt; { ... };
+}</pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/arrow_select/take/sidebar-items.js 
b/arrow_select/take/sidebar-items.js
index 68aeccb621..7881d04d9d 100644
--- a/arrow_select/take/sidebar-items.js
+++ b/arrow_select/take/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = 
{"fn":["maybe_usize","take","take_bits","take_boolean","take_bytes","take_dict","take_fixed_size_binary","take_fixed_size_list","take_impl","take_list","take_native","take_nulls","take_primitive","take_run","take_value_indices_from_fixed_size_list","take_value_indices_from_list"],"struct":["TakeOptions"]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = 
{"fn":["check_bounds","maybe_usize","take","take_bits","take_boolean","take_bytes","take_dict","take_fixed_size_binary","take_fixed_size_list","take_impl","take_list","take_native","take_nulls","take_primitive","take_run","take_value_indices_from_fixed_size_list","take_value_indices_from_list"],"macro":["to_indices_identity","to_indices_reinterpret","to_indices_widening"],"struct":["TakeOptions"],"trait":["ToIndices"]};
\ No newline at end of file
diff --git a/arrow_select/take/struct.TakeOptions.html 
b/arrow_select/take/struct.TakeOptions.html
index 8a0990e16f..38297c7e3f 100644
--- a/arrow_select/take/struct.TakeOptions.html
+++ b/arrow_select/take/struct.TakeOptions.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="Options 
that define how `take` should behave"><title>TakeOptions in arrow_select::take 
- 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 [...]
+<!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="Options 
that define how `take` should behave"><title>TakeOptions in arrow_select::take 
- 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 [...]
     pub check_bounds: <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>Options that define how <code>take</code> should behave</p>
 </div></details><h2 id="fields" class="fields small-section-header">Fields<a 
href="#fields" class="anchor">§</a></h2><span id="structfield.check_bounds" 
class="structfield small-section-header"><a href="#structfield.check_bounds" 
class="anchor field">§</a><code>check_bounds: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></code></span><div
 class="docblock"><p>Perform bounds check before taking indices from values.
 If enabled, an <code>ArrowError</code> is returned if the indices are out of 
bounds.
 If not enabled, and indices exceed bounds, the kernel will panic.</p>
-</div><h2 id="trait-implementations" class="small-section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-TakeOptions" class="impl"><a 
class="src rightside" 
href="../../src/arrow_select/take.rs.html#215">source</a><a 
href="#impl-Clone-for-TakeOptions" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href="https: [...]
+</div><h2 id="trait-implementations" class="small-section-header">Trait 
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div 
id="trait-implementations-list"><details class="toggle implementors-toggle" 
open><summary><section id="impl-Clone-for-TakeOptions" class="impl"><a 
class="src rightside" 
href="../../src/arrow_select/take.rs.html#231">source</a><a 
href="#impl-Clone-for-TakeOptions" 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>,</span></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#136";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a hre 
[...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait 
core::marker::Sized">Sized</a>,</span></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210";>source</a><a
 href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a 
href="https: [...]
     T: ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait 
core::marker::Sized">Sized</a>,</span></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.borrow_mut" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217";>source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href [...]
diff --git a/arrow_select/take/trait.ToIndices.html 
b/arrow_select/take/trait.ToIndices.html
new file mode 100644
index 0000000000..bfbbedd420
--- /dev/null
+++ b/arrow_select/take/trait.ToIndices.html
@@ -0,0 +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="To avoid 
generating take implementations for every index type, instead we only generate 
for UInt32 and UInt64 and coerce inputs to these types"><title>ToIndices in 
arrow_select::take - Rust</title><link rel="preload" as="font" 
type="font/woff2" crossorigin href="../../static.files/Source [...]
+    type <a href="#associatedtype.T" class="associatedtype">T</a>: 
ArrowPrimitiveType;
+
+    // Required method
+    fn <a href="#tymethod.to_indices" class="fn">to_indices</a>(&amp;self) 
-&gt; PrimitiveArray&lt;Self::<a class="associatedtype" 
href="trait.ToIndices.html#associatedtype.T" title="type 
arrow_select::take::ToIndices::T">T</a>&gt;;
+}</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>To avoid generating take implementations for every index 
type, instead we
+only generate for UInt32 and UInt64 and coerce inputs to these types</p>
+</div></details><h2 id="required-associated-types" 
class="small-section-header">Required Associated Types<a 
href="#required-associated-types" class="anchor">§</a></h2><div 
class="methods"><section id="associatedtype.T" class="method"><a class="src 
rightside" href="../../src/arrow_select/take.rs.html#698">source</a><h4 
class="code-header">type <a href="#associatedtype.T" 
class="associatedtype">T</a>: ArrowPrimitiveType</h4></section></div><h2 
id="required-methods" class="small-section-hea [...]
\ No newline at end of file
diff --git a/implementors/arrow_select/take/trait.ToIndices.js 
b/implementors/arrow_select/take/trait.ToIndices.js
new file mode 100644
index 0000000000..4e4702240b
--- /dev/null
+++ b/implementors/arrow_select/take/trait.ToIndices.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"arrow_select":[]
+};if (window.register_implementors) 
{window.register_implementors(implementors);} else {window.pending_implementors 
= implementors;}})()
\ No newline at end of file
diff --git a/search-index.js b/search-index.js
index e9b07e99ca..ebb44c0cfe 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1,5 +1,5 @@
 var searchIndex = JSON.parse('{\
-"arrow":{"doc":"A complete, safe, native Rust implementation of Apache 
…","t":"AAAACAOOAAACCAACAAARININIIDDGDGIINGGGGNDDDGDEESSSDGGGGGGGGGGGGNDGGGGGGGGGGGGGDDGDDGNGGGGGGGGGGGGDDDDDGDGGGSGGGGGGGGGGGGGGGGGGGGGGGGGGGGQGGGGGGGGGGNGGDGDDDQDDDISDDDGDDGGGGNDDGGGGGGGGGGGGGGGGGGGGGGGGDDGGGGGGGGGGGGGGGGDDNMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMKKLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLFKLLKLFLFKLLKLLFKLFFFFLFKLLFKLFLFKLFLLLLLFLLFKLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
 [...]
+"arrow":{"doc":"A complete, safe, native Rust implementation of Apache 
…","t":"AAAACAOOAAACCAACAAARININIIDDGDGIINGGGGNDDDGDEESSSDGGGGGGGGGGGGNDGGGGGGGGGGGGGDDGDDGNGGGGGGGGGGGGDDDDDGDGGGSGGGGGGGGGGGGGGGGGGGGGGGGGGGGQGGGGGGGGGGNGGDGDDDQDDDISDDDGDDGGGGNDDGGGGGGGGGGGGGGGGGGGGGGGGDDGGGGGGGGGGGGGGGGDDNMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMKKLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLFKLLKLFLFKLLKLLFKLFFFFLFKLLFKLFLFKLFLLLLLFLLFKLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
 [...]
 "arrow_arith":{"doc":"Arrow arithmetic and aggregation 
kernels","t":"AAAAAAFOFFFFFFFFFFFFFFFFFAFFFFDDQQIDKLLLKLLLKLLLLLLLLLLLLLLLLLLKLLLKLLLLLLMMMKLLLFLLLLLLLLLFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFNNINQINNENNNIFKKKKKFKKFLLLLLLOFFFFFLLLLFFLFFFOFOOOFFKKKKKFKKOFLLLLOOLIFFFFFFFFFFFFFFFFFFFFKFFKFFKKFOFFFFFFFFF","n":["aggregate","arity","bitwise","boolean","numeric","temporal","bit_and","bit_operation","bit_or","bit_xor","bool_and","bool_or","is_nan","max","max_array","max_binary","max_boolean","
 [...]
 "arrow_array":{"doc":"The central type in Apache Arrow are arrays, which are a 
…","t":"IIISDDDIIDQQSKKAAKAAKMKAKKOOOOOOOOKKKKKMMKKAKKKKKKKKKKKMKKKKKKKAKKAMMAAKMKKAAAAKKKISSKKKKKKLLLLLLLLLLKKKKKOOKKKKKKIIGCGDGGGGDGGGGDDGGGGDDGSGGGGGGGGGGGGGGQGGGGDDDISDDGDGGGGGGGGDDGGGGGGGGDKLLLLLLLLLLLLLLLLLLLAAAKLMMMMMMMMMMMAMLLMMAALLKLKLFKLKLLLLLMLLMKLMMMMALLFAMFFALLKLMMMMMMMMKLMAFAMMKLAAKLMAKMMMMMMMKMMMMMMMMGGGLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLMSDLLLLLLLMLLLLLLLLLLLLLLLLLLL
 [...]
 "arrow_buffer":{"doc":"Low-level buffer abstractions for Apache Arrow 
Rust","t":"IIAKAAAAAAAAKMDMAKKKKARINENALLLLLLLLRENNSSSSDSLLLLLLLLLLLLLLLLLLLLLLLLLLLLOOALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMDLLLLLMLLLLFLFLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDFFFLLLLFFFFLFFFLFFLLLDDDGMMMMMMMMMMMMMDDDMMMMMMMMMMFFFFFFFFFFFDDDDDDDFFFAMMMFFFFMMAMMMMMAAMAMMAMMAMADLLLLLLMLLLLLLLLLLLLLLLLLLLLMLLLLLMLLLLLLLLLLLLDLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLDDLLLLLLLLLLLFMLLLLLLLLLLLLLLLLLLLLLLLLLLMLMMMLLLLLL
 [...]
@@ -16,7 +16,7 @@ var searchIndex = JSON.parse('{\
 "arrow_ord":{"doc":"Arrow ordering 
kernels","t":"AAAAFFFFFFFFFFFOOFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFOFOOOOOOFFFGFFFFFDLLLLLFLLLLLLFFLLLLLDGDDLLLLLLLLLFLLLLLLMLMLLLLLLLLLLLLLLLFFLMMLFFFFFFFFFFFFFFFFFFFLLLLLLLLLLLLM","n":["comparison","ord","partition","sort","cmp_dict","cmp_dict_binary","cmp_dict_binary_array","cmp_dict_bool","cmp_dict_boolean_array","cmp_dict_primitive","cmp_dict_string_array","cmp_dict_utf8","cmp_primitive_array","compar
 [...]
 "arrow_row":{"doc":"A comparable row-oriented representation of a collection 
…","t":"ENNNNENNDDDDDDDDNNNNLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLMMMMMLLLMMMFOOALFLMLLLLLLLLLMMALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLALLLLLLLFLMMLLLLLLMLLLFMLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMAFFFFFFOFFFSQIIKFFFFFFKFOOFKFDDDDDLLLLLLLLLLLMLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLMLMMLMLLLMLLLLLLLLLLLLLLLLLLLMMMFFFFFRRRRFFFFFFF","n":["Codec","Dictionary","Dictionary","DictionaryValues
 [...]
 "arrow_schema":{"doc":"Arrow logical 
types","t":"ENNNNNNRRRRRENNNNNNNNNNNDGDNNNNNNNNNNENNNNNNNNNNNNNNNNNNNDDNGNDNNNNENNNNNNDENNLLLLLMALMMMLLAAAAMMLLLLMMMLMMLALLLLNNRRRRRENNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNENNNNNNENNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLENNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLDDDLLLLLLMMLMMLLLALMLLMLLFLLLLMMMLMLMMFLLLLLLLLLLLLLLLLLSDSSLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDGLLLLLLLLMLLMLMLLLLLLLLLLLMLMLLLLLLLLMLLLLLLLLL
 [...]
-"arrow_select":{"doc":"Arrow selection 
kernels","t":"AAAAAAAFFFNRGDDDDNNENNDNLLLLLLLLLLLLLFLLLLLLLMMMLMMLLFLMMFFFFFFFFFLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLFMLMMMMLLLLLLLLLLLLLLLLLLDMLLLLLFFFFLLMMOLLLFDLLLMLLLLLLLFFFFFFFFFFFFFFFFLLLLFF","n":["concat","filter","interleave","nullif","take","window","zip","binary_capacity","concat","concat_batches","All","FILTER_SLICES_SELECTIVITY_THRESHOLD","Filter","FilterBuilder","FilterBytes","FilterPredicate","IndexIterator","IndexIterator","Indices","Ite
 [...]
+"arrow_select":{"doc":"Arrow selection 
kernels","t":"AAAAAAAFFFNRGDDDDNNENNDNLLLLLLLLLLLLLFLLLLLLLMMMLMMLLFLMMFFFFFFFFFLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLFMLMMMMLLLLLLLLLLLLLLLLLLDMLLLLLFFFFLLMMOLLLFQDILLLFMLLLLLLLFFFFFFFFFFFFFFFFKOOOLLLLFF","n":["concat","filter","interleave","nullif","take","window","zip","binary_capacity","concat","concat_batches","All","FILTER_SLICES_SELECTIVITY_THRESHOLD","Filter","FilterBuilder","FilterBytes","FilterPredicate","IndexIterator","IndexIterator","Indice
 [...]
 
"arrow_stream_to_file":{"doc":"","t":"F","n":["main"],"q":[[0,"arrow_stream_to_file"]],"d":[""],"i":[0],"f":[[[],1]],"c":[],"p":[[6,"Result"]]},\
 "arrow_string":{"doc":"Arrow string 
kernels","t":"AAAAAFFFFFFFFOFFFFFOFFFFFFFFFOOFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFOFFFFFFFFFFFFFFF","n":["concat_elements","length","like","regexp","substring","concat_element_binary","concat_elements_bytes","concat_elements_dyn","concat_elements_utf8","concat_elements_utf8_many","bit_length","bit_length_binary","bit_length_string","kernel_dict","length","length_binary","length_list","length_list_fixed_size","length_string","unary_offsets","compare_
 [...]
 
"flight_sql_client":{"doc":"","t":"DDDLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLMFMMMFFMLMLLLLLLLLLLLLLMMLLL","n":["Args","ClientArgs","KeyValue","augment_args","augment_args","augment_args_for_update","augment_args_for_update","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast","cast","cast","client_args","clone","clone_into","command","command","command_for_update","command_for_update","fmt","fmt","fmt","from","from","from","from_arg_matches","from_arg_matches",
 [...]
diff --git a/src/arrow_cast/cast.rs.html b/src/arrow_cast/cast.rs.html
index 021cbda6ab..35ac6ce908 100644
--- a/src/arrow_cast/cast.rs.html
+++ b/src/arrow_cast/cast.rs.html
@@ -8953,18 +8953,6 @@
 <a href="#8953" id="8953">8953</a>
 <a href="#8954" id="8954">8954</a>
 <a href="#8955" id="8955">8955</a>
-<a href="#8956" id="8956">8956</a>
-<a href="#8957" id="8957">8957</a>
-<a href="#8958" id="8958">8958</a>
-<a href="#8959" id="8959">8959</a>
-<a href="#8960" id="8960">8960</a>
-<a href="#8961" id="8961">8961</a>
-<a href="#8962" id="8962">8962</a>
-<a href="#8963" id="8963">8963</a>
-<a href="#8964" id="8964">8964</a>
-<a href="#8965" id="8965">8965</a>
-<a href="#8966" id="8966">8966</a>
-<a href="#8967" id="8967">8967</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
@@ -9016,7 +9004,7 @@
 <span class="kw">use </span>arrow_array::{
     builder::<span class="kw-2">*</span>, cast::<span class="kw-2">*</span>, 
temporal_conversions::<span class="kw-2">*</span>, timezone::Tz, types::<span 
class="kw-2">*</span>, <span class="kw-2">*</span>,
 };
-<span class="kw">use </span>arrow_buffer::{i256, ArrowNativeType, Buffer, 
OffsetBuffer, ScalarBuffer};
+<span class="kw">use </span>arrow_buffer::{i256, ArrowNativeType, Buffer, 
OffsetBuffer};
 <span class="kw">use </span>arrow_data::ArrayData;
 <span class="kw">use </span>arrow_schema::<span class="kw-2">*</span>;
 <span class="kw">use </span>arrow_select::take::take;
@@ -11994,19 +11982,7 @@
 {
     <span class="kw">let </span>dict_array = array.as_dictionary::&lt;K&gt;();
     <span class="kw">let </span>cast_dict_values = 
cast_with_options(dict_array.values(), to_type, cast_options)<span 
class="question-mark">?</span>;
-    <span class="kw">let </span>keys = dict_array.keys();
-    <span class="kw">match </span>K::DATA_TYPE {
-        DataType::Int32 =&gt; {
-            <span class="comment">// Dictionary guarantees all non-null keys 
&gt;= 0
-            </span><span class="kw">let </span>buffer = 
ScalarBuffer::new(keys.values().inner().clone(), <span class="number">0</span>, 
keys.len());
-            <span class="kw">let </span>indices = PrimitiveArray::new(buffer, 
keys.nulls().cloned());
-            take::&lt;UInt32Type&gt;(cast_dict_values.as_ref(), <span 
class="kw-2">&amp;</span>indices, <span class="prelude-val">None</span>)
-        }
-        <span class="kw">_ </span>=&gt; {
-            <span class="kw">let </span>indices = cast_with_options(keys, 
<span class="kw-2">&amp;</span>DataType::UInt32, cast_options)<span 
class="question-mark">?</span>;
-            take::&lt;UInt32Type&gt;(cast_dict_values.as_ref(), 
indices.as_primitive(), <span class="prelude-val">None</span>)
-        }
-    }
+    take(cast_dict_values.as_ref(), dict_array.keys(), <span 
class="prelude-val">None</span>)
 }
 
 <span class="doccomment">/// Attempts to encode an array into an 
`ArrayDictionary` with index
diff --git a/src/arrow_select/take.rs.html b/src/arrow_select/take.rs.html
index c32c2a8800..1de7e348d1 100644
--- a/src/arrow_select/take.rs.html
+++ b/src/arrow_select/take.rs.html
@@ -1939,6 +1939,81 @@
 <a href="#1939" id="1939">1939</a>
 <a href="#1940" id="1940">1940</a>
 <a href="#1941" id="1941">1941</a>
+<a href="#1942" id="1942">1942</a>
+<a href="#1943" id="1943">1943</a>
+<a href="#1944" id="1944">1944</a>
+<a href="#1945" id="1945">1945</a>
+<a href="#1946" id="1946">1946</a>
+<a href="#1947" id="1947">1947</a>
+<a href="#1948" id="1948">1948</a>
+<a href="#1949" id="1949">1949</a>
+<a href="#1950" id="1950">1950</a>
+<a href="#1951" id="1951">1951</a>
+<a href="#1952" id="1952">1952</a>
+<a href="#1953" id="1953">1953</a>
+<a href="#1954" id="1954">1954</a>
+<a href="#1955" id="1955">1955</a>
+<a href="#1956" id="1956">1956</a>
+<a href="#1957" id="1957">1957</a>
+<a href="#1958" id="1958">1958</a>
+<a href="#1959" id="1959">1959</a>
+<a href="#1960" id="1960">1960</a>
+<a href="#1961" id="1961">1961</a>
+<a href="#1962" id="1962">1962</a>
+<a href="#1963" id="1963">1963</a>
+<a href="#1964" id="1964">1964</a>
+<a href="#1965" id="1965">1965</a>
+<a href="#1966" id="1966">1966</a>
+<a href="#1967" id="1967">1967</a>
+<a href="#1968" id="1968">1968</a>
+<a href="#1969" id="1969">1969</a>
+<a href="#1970" id="1970">1970</a>
+<a href="#1971" id="1971">1971</a>
+<a href="#1972" id="1972">1972</a>
+<a href="#1973" id="1973">1973</a>
+<a href="#1974" id="1974">1974</a>
+<a href="#1975" id="1975">1975</a>
+<a href="#1976" id="1976">1976</a>
+<a href="#1977" id="1977">1977</a>
+<a href="#1978" id="1978">1978</a>
+<a href="#1979" id="1979">1979</a>
+<a href="#1980" id="1980">1980</a>
+<a href="#1981" id="1981">1981</a>
+<a href="#1982" id="1982">1982</a>
+<a href="#1983" id="1983">1983</a>
+<a href="#1984" id="1984">1984</a>
+<a href="#1985" id="1985">1985</a>
+<a href="#1986" id="1986">1986</a>
+<a href="#1987" id="1987">1987</a>
+<a href="#1988" id="1988">1988</a>
+<a href="#1989" id="1989">1989</a>
+<a href="#1990" id="1990">1990</a>
+<a href="#1991" id="1991">1991</a>
+<a href="#1992" id="1992">1992</a>
+<a href="#1993" id="1993">1993</a>
+<a href="#1994" id="1994">1994</a>
+<a href="#1995" id="1995">1995</a>
+<a href="#1996" id="1996">1996</a>
+<a href="#1997" id="1997">1997</a>
+<a href="#1998" id="1998">1998</a>
+<a href="#1999" id="1999">1999</a>
+<a href="#2000" id="2000">2000</a>
+<a href="#2001" id="2001">2001</a>
+<a href="#2002" id="2002">2002</a>
+<a href="#2003" id="2003">2003</a>
+<a href="#2004" id="2004">2004</a>
+<a href="#2005" id="2005">2005</a>
+<a href="#2006" id="2006">2006</a>
+<a href="#2007" id="2007">2007</a>
+<a href="#2008" id="2008">2008</a>
+<a href="#2009" id="2009">2009</a>
+<a href="#2010" id="2010">2010</a>
+<a href="#2011" id="2011">2011</a>
+<a href="#2012" id="2012">2012</a>
+<a href="#2013" id="2013">2013</a>
+<a href="#2014" id="2014">2014</a>
+<a href="#2015" id="2015">2015</a>
+<a href="#2016" id="2016">2016</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
@@ -2014,49 +2089,65 @@
 ///
 /// assert_eq!(*taken, StringArray::from(vec![&quot;two&quot;, 
&quot;one&quot;]));
 /// ```
-</span><span class="kw">pub fn </span>take&lt;IndexType: 
ArrowPrimitiveType&gt;(
+</span><span class="kw">pub fn </span>take(
     values: <span class="kw-2">&amp;</span><span class="kw">dyn </span>Array,
-    indices: <span class="kw-2">&amp;</span>PrimitiveArray&lt;IndexType&gt;,
+    indices: <span class="kw-2">&amp;</span><span class="kw">dyn </span>Array,
     options: <span class="prelude-ty">Option</span>&lt;TakeOptions&gt;,
 ) -&gt; <span class="prelude-ty">Result</span>&lt;ArrayRef, ArrowError&gt; {
-    take_impl(values, indices, options)
+    <span class="kw">let </span>options = options.unwrap_or_default();
+    <span class="macro">macro_rules! </span>helper {
+        (<span class="macro-nonterminal">$t</span>:ty, <span 
class="macro-nonterminal">$values</span>:expr, <span 
class="macro-nonterminal">$indices</span>:expr, <span 
class="macro-nonterminal">$options</span>:expr) =&gt; {{
+            <span class="kw">let </span>indices = 
indices.as_primitive::&lt;<span class="macro-nonterminal">$t</span>&gt;();
+            <span class="kw">if </span><span 
class="macro-nonterminal">$options</span>.check_bounds {
+                check_bounds(<span 
class="macro-nonterminal">$values</span>.len(), indices)<span 
class="question-mark">?</span>;
+            }
+            <span class="kw">let </span>indices = indices.to_indices();
+            take_impl(<span class="macro-nonterminal">$values</span>, <span 
class="kw-2">&amp;</span>indices)
+        }};
+    }
+    <span class="macro">downcast_integer! </span>{
+        indices.data_type() =&gt; (helper, values, indices, options),
+        d =&gt; <span 
class="prelude-val">Err</span>(ArrowError::InvalidArgumentError(<span 
class="macro">format!</span>(<span class="string">&quot;Take only supported for 
integers, got {d:?}&quot;</span>)))
+    }
 }
 
-<span class="kw">fn </span>take_impl&lt;IndexType: ArrowPrimitiveType&gt;(
-    values: <span class="kw-2">&amp;</span><span class="kw">dyn </span>Array,
-    indices: <span class="kw-2">&amp;</span>PrimitiveArray&lt;IndexType&gt;,
-    options: <span class="prelude-ty">Option</span>&lt;TakeOptions&gt;,
-) -&gt; <span class="prelude-ty">Result</span>&lt;ArrayRef, ArrowError&gt; {
-    <span class="kw">let </span>options = options.unwrap_or_default();
-    <span class="kw">if </span>options.check_bounds {
-        <span class="kw">let </span>len = values.len();
-        <span class="kw">if </span>indices.null_count() &gt; <span 
class="number">0 </span>{
-            indices.iter().flatten().try_for_each(|index| {
-                <span class="kw">let </span>ix = 
index.to_usize().ok_or_else(|| {
-                    ArrowError::ComputeError(<span class="string">&quot;Cast 
to usize failed&quot;</span>.to_string())
-                })<span class="question-mark">?</span>;
-                <span class="kw">if </span>ix &gt;= len {
-                    <span class="kw">return </span><span 
class="prelude-val">Err</span>(ArrowError::ComputeError(
-                        <span class="macro">format!</span>(<span 
class="string">&quot;Array index out of bounds, cannot get item at index {ix} 
from {len} entries&quot;</span>))
-                    );
-                }
-                <span class="prelude-val">Ok</span>(())
+<span class="doccomment">/// Verifies that the non-null values of `indices` 
are all `&lt; len`
+</span><span class="kw">fn </span>check_bounds&lt;T: ArrowPrimitiveType&gt;(
+    len: usize,
+    indices: <span class="kw-2">&amp;</span>PrimitiveArray&lt;T&gt;,
+) -&gt; <span class="prelude-ty">Result</span>&lt;(), ArrowError&gt; {
+    <span class="kw">if </span>indices.null_count() &gt; <span 
class="number">0 </span>{
+        indices.iter().flatten().try_for_each(|index| {
+            <span class="kw">let </span>ix = index.to_usize().ok_or_else(|| {
+                ArrowError::ComputeError(<span class="string">&quot;Cast to 
usize failed&quot;</span>.to_string())
             })<span class="question-mark">?</span>;
-        } <span class="kw">else </span>{
-            indices.values().iter().try_for_each(|index| {
-                <span class="kw">let </span>ix = 
index.to_usize().ok_or_else(|| {
-                    ArrowError::ComputeError(<span class="string">&quot;Cast 
to usize failed&quot;</span>.to_string())
-                })<span class="question-mark">?</span>;
-                <span class="kw">if </span>ix &gt;= len {
-                    <span class="kw">return </span><span 
class="prelude-val">Err</span>(ArrowError::ComputeError(
-                        <span class="macro">format!</span>(<span 
class="string">&quot;Array index out of bounds, cannot get item at index {ix} 
from {len} entries&quot;</span>))
-                    );
-                }
-                <span class="prelude-val">Ok</span>(())
-            })<span class="question-mark">?
-        </span>}
+            <span class="kw">if </span>ix &gt;= len {
+                <span class="kw">return </span><span 
class="prelude-val">Err</span>(ArrowError::ComputeError(
+                    <span class="macro">format!</span>(<span 
class="string">&quot;Array index out of bounds, cannot get item at index {ix} 
from {len} entries&quot;</span>))
+                );
+            }
+            <span class="prelude-val">Ok</span>(())
+        })
+    } <span class="kw">else </span>{
+        indices.values().iter().try_for_each(|index| {
+            <span class="kw">let </span>ix = index.to_usize().ok_or_else(|| {
+                ArrowError::ComputeError(<span class="string">&quot;Cast to 
usize failed&quot;</span>.to_string())
+            })<span class="question-mark">?</span>;
+            <span class="kw">if </span>ix &gt;= len {
+                <span class="kw">return </span><span 
class="prelude-val">Err</span>(ArrowError::ComputeError(
+                    <span class="macro">format!</span>(<span 
class="string">&quot;Array index out of bounds, cannot get item at index {ix} 
from {len} entries&quot;</span>))
+                );
+            }
+            <span class="prelude-val">Ok</span>(())
+        })
     }
+}
 
+<span class="attr">#[inline(never)]
+</span><span class="kw">fn </span>take_impl&lt;IndexType: 
ArrowPrimitiveType&gt;(
+    values: <span class="kw-2">&amp;</span><span class="kw">dyn </span>Array,
+    indices: <span class="kw-2">&amp;</span>PrimitiveArray&lt;IndexType&gt;,
+) -&gt; <span class="prelude-ty">Result</span>&lt;ArrayRef, ArrowError&gt; {
     <span class="macro">downcast_primitive_array! </span>{
         values =&gt; <span 
class="prelude-val">Ok</span>(Arc::new(take_primitive(values, indices)<span 
class="question-mark">?</span>)),
         DataType::Boolean =&gt; {
@@ -2097,7 +2188,7 @@
             <span class="kw">let </span>arrays  = array
                 .columns()
                 .iter()
-                .map(|a| take_impl(a.as_ref(), indices, <span 
class="prelude-val">Some</span>(options.clone())))
+                .map(|a| take_impl(a.as_ref(), indices))
                 .collect::&lt;<span 
class="prelude-ty">Result</span>&lt;Vec&lt;ArrayRef&gt;, <span 
class="kw">_</span>&gt;&gt;()<span class="question-mark">?</span>;
             <span class="kw">let </span>fields: Vec&lt;(FieldRef, 
ArrayRef)&gt; =
                 fields.iter().cloned().zip(arrays).collect();
@@ -2364,7 +2455,7 @@
     </span><span class="kw">let </span>(list_indices, offsets, null_buf) =
         take_value_indices_from_list::&lt;IndexType, OffsetType&gt;(values, 
indices)<span class="question-mark">?</span>;
 
-    <span class="kw">let </span>taken = 
take_impl::&lt;OffsetType&gt;(values.values().as_ref(), <span 
class="kw-2">&amp;</span>list_indices, <span 
class="prelude-val">None</span>)<span class="question-mark">?</span>;
+    <span class="kw">let </span>taken = 
take_impl::&lt;OffsetType&gt;(values.values().as_ref(), <span 
class="kw-2">&amp;</span>list_indices)<span class="question-mark">?</span>;
     <span class="kw">let </span>value_offsets = Buffer::from_vec(offsets);
     <span class="comment">// create a new list with taken data and computed 
null information
     </span><span class="kw">let </span>list_data = 
ArrayDataBuilder::new(values.data_type().clone())
@@ -2390,7 +2481,7 @@
     length: &lt;UInt32Type <span class="kw">as 
</span>ArrowPrimitiveType&gt;::Native,
 ) -&gt; <span class="prelude-ty">Result</span>&lt;FixedSizeListArray, 
ArrowError&gt; {
     <span class="kw">let </span>list_indices = 
take_value_indices_from_fixed_size_list(values, indices, length)<span 
class="question-mark">?</span>;
-    <span class="kw">let </span>taken = 
take_impl::&lt;UInt32Type&gt;(values.values().as_ref(), <span 
class="kw-2">&amp;</span>list_indices, <span 
class="prelude-val">None</span>)<span class="question-mark">?</span>;
+    <span class="kw">let </span>taken = 
take_impl::&lt;UInt32Type&gt;(values.values().as_ref(), <span 
class="kw-2">&amp;</span>list_indices)<span class="question-mark">?</span>;
 
     <span class="comment">// determine null count and null buffer, which are a 
function of `values` and `indices`
     </span><span class="kw">let </span>num_bytes = 
bit_util::ceil(indices.len(), <span class="number">8</span>);
@@ -2617,6 +2708,65 @@
     <span 
class="prelude-val">Ok</span>(PrimitiveArray::&lt;UInt32Type&gt;::from(values))
 }
 
+<span class="doccomment">/// To avoid generating take implementations for 
every index type, instead we
+/// only generate for UInt32 and UInt64 and coerce inputs to these types
+</span><span class="kw">trait </span>ToIndices {
+    <span class="kw">type </span>T: ArrowPrimitiveType;
+
+    <span class="kw">fn </span>to_indices(<span class="kw-2">&amp;</span><span 
class="self">self</span>) -&gt; PrimitiveArray&lt;<span 
class="self">Self</span>::T&gt;;
+}
+
+<span class="macro">macro_rules! </span>to_indices_reinterpret {
+    (<span class="macro-nonterminal">$t</span>:ty, <span 
class="macro-nonterminal">$o</span>:ty) =&gt; {
+        <span class="kw">impl </span>ToIndices <span class="kw">for 
</span>PrimitiveArray&lt;<span class="macro-nonterminal">$t</span>&gt; {
+            <span class="kw">type </span>T = <span 
class="macro-nonterminal">$o</span>;
+
+            <span class="kw">fn </span>to_indices(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; 
PrimitiveArray&lt;<span class="macro-nonterminal">$o</span>&gt; {
+                <span class="kw">let </span>cast =
+                    ScalarBuffer::new(<span 
class="self">self</span>.values().inner().clone(), <span 
class="number">0</span>, <span class="self">self</span>.len());
+                PrimitiveArray::new(cast, <span 
class="self">self</span>.nulls().cloned())
+            }
+        }
+    };
+}
+
+<span class="macro">macro_rules! </span>to_indices_identity {
+    (<span class="macro-nonterminal">$t</span>:ty) =&gt; {
+        <span class="kw">impl </span>ToIndices <span class="kw">for 
</span>PrimitiveArray&lt;<span class="macro-nonterminal">$t</span>&gt; {
+            <span class="kw">type </span>T = <span 
class="macro-nonterminal">$t</span>;
+
+            <span class="kw">fn </span>to_indices(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; 
PrimitiveArray&lt;<span class="macro-nonterminal">$t</span>&gt; {
+                <span class="self">self</span>.clone()
+            }
+        }
+    };
+}
+
+<span class="macro">macro_rules! </span>to_indices_widening {
+    (<span class="macro-nonterminal">$t</span>:ty, <span 
class="macro-nonterminal">$o</span>:ty) =&gt; {
+        <span class="kw">impl </span>ToIndices <span class="kw">for 
</span>PrimitiveArray&lt;<span class="macro-nonterminal">$t</span>&gt; {
+            <span class="kw">type </span>T = UInt32Type;
+
+            <span class="kw">fn </span>to_indices(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; 
PrimitiveArray&lt;<span class="macro-nonterminal">$o</span>&gt; {
+                <span class="kw">let </span>cast = <span 
class="self">self</span>.values().iter().copied().map(|x| x <span class="kw">as 
_</span>).collect();
+                PrimitiveArray::new(cast, <span 
class="self">self</span>.nulls().cloned())
+            }
+        }
+    };
+}
+
+<span class="macro">to_indices_widening!</span>(UInt8Type, UInt32Type);
+<span class="macro">to_indices_widening!</span>(Int8Type, UInt32Type);
+
+<span class="macro">to_indices_widening!</span>(UInt16Type, UInt32Type);
+<span class="macro">to_indices_widening!</span>(Int16Type, UInt32Type);
+
+<span class="macro">to_indices_identity!</span>(UInt32Type);
+<span class="macro">to_indices_reinterpret!</span>(Int32Type, UInt32Type);
+
+<span class="macro">to_indices_identity!</span>(UInt64Type);
+<span class="macro">to_indices_reinterpret!</span>(Int64Type, UInt64Type);
+
 <span class="attr">#[cfg(test)]
 </span><span class="kw">mod </span>tests {
     <span class="kw">use super</span>::<span class="kw-2">*</span>;
@@ -2708,7 +2858,7 @@
     {
         <span class="kw">let </span>output = 
PrimitiveArray::&lt;T&gt;::from(data);
         <span class="kw">let </span>expected = 
PrimitiveArray::&lt;T&gt;::from(expected_data);
-        <span class="kw">let </span>output = take_impl(<span 
class="kw-2">&amp;</span>output, index, options).unwrap();
+        <span class="kw">let </span>output = take(<span 
class="kw-2">&amp;</span>output, index, options).unwrap();
         <span class="kw">let </span>output = 
output.as_any().downcast_ref::&lt;PrimitiveArray&lt;T&gt;&gt;().unwrap();
         <span class="macro">assert_eq!</span>(output, <span 
class="kw-2">&amp;</span>expected)
     }
@@ -3019,7 +3169,7 @@
             <span class="number">1_639_715_368_000_000_000</span>,
         ])
         .with_timezone(<span 
class="string">&quot;UTC&quot;</span>.to_string());
-        <span class="kw">let </span>result = take_impl(<span 
class="kw-2">&amp;</span>input, <span class="kw-2">&amp;</span>index, <span 
class="prelude-val">None</span>).unwrap();
+        <span class="kw">let </span>result = take(<span 
class="kw-2">&amp;</span>input, <span class="kw-2">&amp;</span>index, <span 
class="prelude-val">None</span>).unwrap();
         <span class="kw">match </span>result.data_type() {
             DataType::Timestamp(TimeUnit::Nanosecond, tz) =&gt; {
                 <span class="macro">assert_eq!</span>(tz.clone(), <span 
class="prelude-val">Some</span>(<span 
class="string">&quot;UTC&quot;</span>.into()))

Reply via email to