blob: 58a3c9696f7a1653ddce6e11f3b9a34888b48103 [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A generic trait for accessing the values of an `Array`"><title>ArrayAccessor in arrow_array::array - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="arrow_array" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.0-nightly (20383c9f1 2025-11-03)" data-channel="nightly" data-search-js="search-5c29b3b5.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_transparent-bg.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">ArrayAccessor</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../arrow_array/index.html"><img src="https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg" alt="logo"></a><h2><a href="../../arrow_array/index.html">arrow_<wbr>array</a><span class="version">57.0.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Array<wbr>Accessor</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#example" title="Example">Example</a></li><li><a href="#validity" title="Validity">Validity</a></li></ul><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Item" title="Item">Item</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.value" title="value">value</a></li><li><a href="#tymethod.value_unchecked" title="value_unchecked">value_unchecked</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In arrow_<wbr>array::<wbr>array</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">arrow_array</a>::<wbr><a href="index.html">array</a></div><h1>Trait <span class="trait">Array<wbr>Accessor</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/arrow_array/array/mod.rs.html#574-587">Source</a> </span></div><pre class="rust item-decl"><code>pub trait ArrayAccessor: <a class="trait" href="trait.Array.html" title="trait arrow_array::array::Array">Array</a> {
type <a href="#associatedtype.Item" class="associatedtype">Item</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>;
// Required methods
fn <a href="#tymethod.value" class="fn">value</a>(&amp;self, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; Self::<a class="associatedtype" href="trait.ArrayAccessor.html#associatedtype.Item" title="type arrow_array::array::ArrayAccessor::Item">Item</a>;
<span class="item-spacer"></span> unsafe fn <a href="#tymethod.value_unchecked" class="fn">value_unchecked</a>(&amp;self, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; Self::<a class="associatedtype" href="trait.ArrayAccessor.html#associatedtype.Item" title="type arrow_array::array::ArrayAccessor::Item">Item</a>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A generic trait for accessing the values of an <a href="trait.Array.html" title="trait arrow_array::array::Array"><code>Array</code></a></p>
<p>This trait helps write specialized implementations of algorithms for
different array types. Specialized implementations allow the compiler
to optimize the code for the specific array type, which can lead to
significant performance improvements.</p>
<h2 id="example"><a class="doc-anchor" href="#example">§</a>Example</h2>
<p>For example, to write three different implementations of a string length function
for <a href="type.StringArray.html" title="type arrow_array::array::StringArray"><code>StringArray</code></a>, <a href="type.LargeStringArray.html" title="type arrow_array::array::LargeStringArray"><code>LargeStringArray</code></a>, and <a href="type.StringViewArray.html" title="type arrow_array::array::StringViewArray"><code>StringViewArray</code></a>, you can write</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="doccomment">/// This function takes a dynamically typed `ArrayRef` and calls
/// calls one of three specialized implementations
</span><span class="kw">fn </span>character_length(arg: ArrayRef) -&gt; <span class="prelude-ty">Result</span>&lt;ArrayRef, ArrowError&gt; {
<span class="kw">match </span>arg.data_type() {
DataType::Utf8 =&gt; {
<span class="comment">// downcast the ArrayRef to a StringArray and call the specialized implementation
</span><span class="kw">let </span>string_array = arg.as_string::&lt;i32&gt;();
character_length_general::&lt;Int32Type, <span class="kw">_</span>&gt;(string_array)
}
DataType::LargeUtf8 =&gt; {
character_length_general::&lt;Int64Type, <span class="kw">_</span>&gt;(arg.as_string::&lt;i64&gt;())
}
DataType::Utf8View =&gt; {
character_length_general::&lt;Int32Type, <span class="kw">_</span>&gt;(arg.as_string_view())
}
<span class="kw">_ </span>=&gt; <span class="prelude-val">Err</span>(ArrowError::InvalidArgumentError(<span class="string">"Unsupported data type"</span>.to_string())),
}
}
<span class="doccomment">/// A generic implementation of the character_length function
/// This function uses the `ArrayAccessor` trait to access the values of the array
/// so the compiler can generated specialized implementations for different array types
///
/// Returns a new array with the length of each string in the input array
/// * Int32Array for Utf8 and Utf8View arrays (lengths are 32-bit integers)
/// * Int64Array for LargeUtf8 arrays (lengths are 64-bit integers)
///
/// This is generic on the type of the primitive array (different string arrays have
/// different lengths) and the type of the array accessor (different string arrays
/// have different ways to access the values)
</span><span class="kw">fn </span>character_length_general&lt;<span class="lifetime">'a</span>, T: ArrowPrimitiveType, V: ArrayAccessor&lt;Item = <span class="kw-2">&amp;</span><span class="lifetime">'a </span>str&gt;&gt;(
array: V,
) -&gt; <span class="prelude-ty">Result</span>&lt;ArrayRef, ArrowError&gt;
<span class="kw">where
</span>T::Native: OffsetSizeTrait,
{
<span class="kw">let </span>iter = ArrayIter::new(array);
<span class="comment">// Create a Int32Array / Int64Array with the length of each string
</span><span class="kw">let </span>result = iter
.map(|string| {
string.map(|string: <span class="kw-2">&amp;</span>str| {
T::Native::from_usize(string.chars().count())
.expect(<span class="string">"should not fail as string.chars will always return integer"</span>)
})
})
.collect::&lt;PrimitiveArray&lt;T&gt;&gt;();
<span class="doccomment">/// Return the result as a new ArrayRef (dynamically typed)
</span><span class="prelude-val">Ok</span>(Arc::new(result) <span class="kw">as </span>ArrayRef)
}</code></pre></div><h2 id="validity"><a class="doc-anchor" href="#validity">§</a>Validity</h2>
<p>An <a href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor"><code>ArrayAccessor</code></a> must always return a well-defined value for an index
that is within the bounds <code>0..Array::len</code>, including for null indexes where
<a href="trait.Array.html#method.is_null" title="method arrow_array::array::Array::is_null"><code>Array::is_null</code></a> is true.</p>
<p>The value at null indexes is unspecified, and implementations must not rely
on a specific value such as <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" title="associated function core::default::Default::default"><code>Default::default</code></a> being returned, however, it
must not be undefined</p>
</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.Item" class="method"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#576">Source</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a></h4></section></summary><div class="docblock"><p>The Arrow type of the element being accessed.</p>
</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.value" class="method"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#581">Source</a><h4 class="code-header">fn <a href="#tymethod.value" class="fn">value</a>(&amp;self, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; Self::<a class="associatedtype" href="trait.ArrayAccessor.html#associatedtype.Item" title="type arrow_array::array::ArrayAccessor::Item">Item</a></h4></section></summary><div class="docblock"><p>Returns the element at index <code>i</code></p>
<h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
<p>Panics if the value is outside the bounds of the array</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.value_unchecked" class="method"><a class="src rightside" href="../../src/arrow_array/array/mod.rs.html#586">Source</a><h4 class="code-header">unsafe fn <a href="#tymethod.value_unchecked" class="fn">value_unchecked</a>(&amp;self, index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; Self::<a class="associatedtype" href="trait.ArrayAccessor.html#associatedtype.Item" title="type arrow_array::array::ArrayAccessor::Item">Item</a></h4></section></summary><div class="docblock"><p>Returns the element at index <code>i</code></p>
<h5 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h5>
<p>Caller is responsible for ensuring that the index is within the bounds of the array</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-%26BooleanArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/boolean_array.rs.html#350-360">Source</a><a href="#impl-ArrayAccessor-for-%26BooleanArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for &amp;<a class="struct" href="struct.BooleanArray.html" title="struct arrow_array::array::BooleanArray">BooleanArray</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/boolean_array.rs.html#351">Source</a><a href="#associatedtype.Item-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-%26FixedSizeListArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#471-481">Source</a><a href="#impl-ArrayAccessor-for-%26FixedSizeListArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for &amp;<a class="struct" href="struct.FixedSizeListArray.html" title="struct arrow_array::array::FixedSizeListArray">FixedSizeListArray</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-2" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#472">Source</a><a href="#associatedtype.Item-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <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="trait.Array.html" title="trait arrow_array::array::Array">Array</a>&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-%26MapArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#424-434">Source</a><a href="#impl-ArrayAccessor-for-%26MapArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for &amp;<a class="struct" href="struct.MapArray.html" title="struct arrow_array::array::MapArray">MapArray</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-3" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/map_array.rs.html#425">Source</a><a href="#associatedtype.Item-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="struct" href="struct.StructArray.html" title="struct arrow_array::array::StructArray">StructArray</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-FixedSizeListArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#449-459">Source</a><a href="#impl-ArrayAccessor-for-FixedSizeListArray" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for <a class="struct" href="struct.FixedSizeListArray.html" title="struct arrow_array::array::FixedSizeListArray">FixedSizeListArray</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-4" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_list_array.rs.html#450">Source</a><a href="#associatedtype.Item-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <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="trait.Array.html" title="trait arrow_array::array::Array">Array</a>&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-%26FixedSizeBinaryArray" class="impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_binary_array.rs.html#651-661">Source</a><a href="#impl-ArrayAccessor-for-%26FixedSizeBinaryArray" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for &amp;'a <a class="struct" href="struct.FixedSizeBinaryArray.html" title="struct arrow_array::array::FixedSizeBinaryArray">FixedSizeBinaryArray</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-5" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/fixed_size_binary_array.rs.html#652">Source</a><a href="#associatedtype.Item-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &amp;'a [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-TypedDictionaryArray%3C'a,+K,+V%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#930-960">Source</a><a href="#impl-ArrayAccessor-for-TypedDictionaryArray%3C'a,+K,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, K, V&gt; <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for <a class="struct" href="struct.TypedDictionaryArray.html" title="struct arrow_array::array::TypedDictionaryArray">TypedDictionaryArray</a>&lt;'a, K, V&gt;<div class="where">where
K: <a class="trait" href="../types/trait.ArrowDictionaryKeyType.html" title="trait arrow_array::types::ArrowDictionaryKeyType">ArrowDictionaryKeyType</a>,
V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a>: <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a>,
&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a> as <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a>&gt;::<a class="associatedtype" href="trait.ArrayAccessor.html#associatedtype.Item" title="type arrow_array::array::ArrayAccessor::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-6" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/dictionary_array.rs.html#937">Source</a><a href="#associatedtype.Item-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a> as <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a>&gt;::<a class="associatedtype" href="trait.ArrayAccessor.html#associatedtype.Item" title="type arrow_array::array::ArrayAccessor::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-TypedRunArray%3C'a,+R,+V%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#625-648">Source</a><a href="#impl-ArrayAccessor-for-TypedRunArray%3C'a,+R,+V%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, R, V&gt; <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for <a class="struct" href="struct.TypedRunArray.html" title="struct arrow_array::array::TypedRunArray">TypedRunArray</a>&lt;'a, R, V&gt;<div class="where">where
R: <a class="trait" href="../types/trait.RunEndIndexType.html" title="trait arrow_array::types::RunEndIndexType">RunEndIndexType</a>,
V: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a>: <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a>,
&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a> as <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a>&gt;::<a class="associatedtype" href="trait.ArrayAccessor.html#associatedtype.Item" title="type arrow_array::array::ArrayAccessor::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-7" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/run_array.rs.html#632">Source</a><a href="#associatedtype.Item-7" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a V</a> as <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a>&gt;::<a class="associatedtype" href="trait.ArrayAccessor.html#associatedtype.Item" title="type arrow_array::array::ArrayAccessor::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-%26GenericByteArray%3CT%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/byte_array.rs.html#529-539">Source</a><a href="#impl-ArrayAccessor-for-%26GenericByteArray%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, T: <a class="trait" href="../types/trait.ByteArrayType.html" title="trait arrow_array::types::ByteArrayType">ByteArrayType</a>&gt; <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for &amp;'a <a class="struct" href="struct.GenericByteArray.html" title="struct arrow_array::array::GenericByteArray">GenericByteArray</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Item-8" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/byte_array.rs.html#530">Source</a><a href="#associatedtype.Item-8" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &amp;'a &lt;T as <a class="trait" href="../types/trait.ByteArrayType.html" title="trait arrow_array::types::ByteArrayType">ByteArrayType</a>&gt;::<a class="associatedtype" href="../types/trait.ByteArrayType.html#associatedtype.Native" title="type arrow_array::types::ByteArrayType::Native">Native</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-%26GenericByteViewArray%3CT%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/byte_view_array.rs.html#850-860">Source</a><a href="#impl-ArrayAccessor-for-%26GenericByteViewArray%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a, T: <a class="trait" href="../types/trait.ByteViewType.html" title="trait arrow_array::types::ByteViewType">ByteViewType</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>&gt; <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for &amp;'a <a class="struct" href="struct.GenericByteViewArray.html" title="struct arrow_array::array::GenericByteViewArray">GenericByteViewArray</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Item-9" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/byte_view_array.rs.html#851">Source</a><a href="#associatedtype.Item-9" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &amp;'a &lt;T as <a class="trait" href="../types/trait.ByteViewType.html" title="trait arrow_array::types::ByteViewType">ByteViewType</a>&gt;::<a class="associatedtype" href="../types/trait.ByteViewType.html#associatedtype.Native" title="type arrow_array::types::ByteViewType::Native">Native</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-%26GenericListArray%3COffsetSize%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/list_array.rs.html#597-607">Source</a><a href="#impl-ArrayAccessor-for-%26GenericListArray%3COffsetSize%3E" class="anchor">§</a><h3 class="code-header">impl&lt;OffsetSize: <a class="trait" href="trait.OffsetSizeTrait.html" title="trait arrow_array::array::OffsetSizeTrait">OffsetSizeTrait</a>&gt; <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for &amp;<a class="struct" href="struct.GenericListArray.html" title="struct arrow_array::array::GenericListArray">GenericListArray</a>&lt;OffsetSize&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Item-10" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/list_array.rs.html#598">Source</a><a href="#associatedtype.Item-10" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <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="trait.Array.html" title="trait arrow_array::array::Array">Array</a>&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-%26GenericListViewArray%3COffsetSize%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/list_view_array.rs.html#362-372">Source</a><a href="#impl-ArrayAccessor-for-%26GenericListViewArray%3COffsetSize%3E" class="anchor">§</a><h3 class="code-header">impl&lt;OffsetSize: <a class="trait" href="trait.OffsetSizeTrait.html" title="trait arrow_array::array::OffsetSizeTrait">OffsetSizeTrait</a>&gt; <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for &amp;<a class="struct" href="struct.GenericListViewArray.html" title="struct arrow_array::array::GenericListViewArray">GenericListViewArray</a>&lt;OffsetSize&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Item-11" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/list_view_array.rs.html#363">Source</a><a href="#associatedtype.Item-11" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <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="trait.Array.html" title="trait arrow_array::array::Array">Array</a>&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ArrayAccessor-for-%26PrimitiveArray%3CT%3E" class="impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#1254-1265">Source</a><a href="#impl-ArrayAccessor-for-%26PrimitiveArray%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T: <a class="trait" href="../types/trait.ArrowPrimitiveType.html" title="trait arrow_array::types::ArrowPrimitiveType">ArrowPrimitiveType</a>&gt; <a class="trait" href="trait.ArrayAccessor.html" title="trait arrow_array::array::ArrayAccessor">ArrayAccessor</a> for &amp;<a class="struct" href="struct.PrimitiveArray.html" title="struct arrow_array::array::PrimitiveArray">PrimitiveArray</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Item-12" class="associatedtype trait-impl"><a class="src rightside" href="../../src/arrow_array/array/primitive_array.rs.html#1255">Source</a><a href="#associatedtype.Item-12" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &lt;T as <a class="trait" href="../types/trait.ArrowPrimitiveType.html" title="trait arrow_array::types::ArrowPrimitiveType">ArrowPrimitiveType</a>&gt;::<a class="associatedtype" href="../types/trait.ArrowPrimitiveType.html#associatedtype.Native" title="type arrow_array::types::ArrowPrimitiveType::Native">Native</a></h4></section></div></details></div><script src="../../trait.impl/arrow_array/array/trait.ArrayAccessor.js" async></script></section></div></main></body></html>