This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git
The following commit(s) were added to refs/heads/gh-pages by this push:
new caecb6d deploy: 275896115f834c9079607e2da37e87449ecd7958
caecb6d is described below
commit caecb6dfb484a9fea0880606fc2d73e753044bec
Author: liurenjie1024 <[email protected]>
AuthorDate: Wed Aug 14 13:10:46 2024 +0000
deploy: 275896115f834c9079607e2da37e87449ecd7958
---
api/iceberg/arrow/struct.ArrowReader.html | 6 +-
api/iceberg/arrow/struct.ArrowReaderBuilder.html | 7 +-
api/iceberg/expr/enum.BoundPredicate.html | 4 +-
api/iceberg/expr/struct.BinaryExpression.html | 4 +-
api/iceberg/expr/struct.BoundReference.html | 4 +-
api/iceberg/expr/struct.SetExpression.html | 4 +-
api/iceberg/expr/struct.UnaryExpression.html | 4 +-
api/iceberg/index.html | 2 +-
api/iceberg/scan/index.html | 2 +-
api/iceberg/scan/struct.FileScanTask.html | 14 +-
api/iceberg/scan/struct.TableScan.html | 12 +-
api/iceberg/scan/struct.TableScanBuilder.html | 23 +--
api/iceberg/scan/type.ArrowRecordBatchStream.html | 2 +-
api/iceberg/scan/type.FileScanTaskStream.html | 2 +-
api/iceberg/spec/enum.DataFileFormat.html | 2 +-
api/iceberg/spec/enum.SortDirection.html | 4 +-
api/iceberg/spec/enum.Transform.html | 4 +-
api/iceberg/spec/enum.Type.html | 4 +-
.../enum.UnboundPartitionSpecBuilderError.html | 2 +-
api/iceberg/spec/enum.ViewFormatVersion.html | 4 +-
api/iceberg/spec/struct.Datum.html | 2 +-
api/iceberg/spec/struct.Schema.html | 4 +-
api/iceberg/struct.Error.html | 2 +-
api/search-index.js | 2 +-
api/search.desc/iceberg/iceberg-desc-0-.js | 2 +-
api/src-files.js | 2 +-
api/src/iceberg/arrow/reader.rs.html | 200 ++++++++++++++++-----
api/src/iceberg/lib.rs.html | 2 +
api/src/iceberg/scan.rs.html | 48 +++--
api/src/iceberg/utils.rs.html | 85 +++++++++
30 files changed, 340 insertions(+), 119 deletions(-)
diff --git a/api/iceberg/arrow/struct.ArrowReader.html
b/api/iceberg/arrow/struct.ArrowReader.html
index 4914853..c4c4231 100644
--- a/api/iceberg/arrow/struct.ArrowReader.html
+++ b/api/iceberg/arrow/struct.ArrowReader.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Reads data
from Parquet files"><title>ArrowReader in iceberg::arrow -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49
[...]
-</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-ArrowReader"
class="impl"><a class="src rightside"
href="../../src/iceberg/arrow/reader.rs.html#89-254">source</a><a
href="#impl-ArrowReader" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.ArrowReader.html" title="struct [...]
+<!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="Reads data
from Parquet files"><title>ArrowReader in iceberg::arrow -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e49
[...]
+</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-ArrowReader"
class="impl"><a class="src rightside"
href="../../src/iceberg/arrow/reader.rs.html#105-306">source</a><a
href="#impl-ArrowReader" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.ArrowReader.html" title="struct [...]
Returns a stream of Arrow RecordBatches containing the data from the files</p>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-ArrowReader" class="impl"><a class="src rightside"
href="../../src/iceberg/arrow/reader.rs.html#83">source</a><a
href="#impl-Clone-for-ArrowReader" class="anchor">§</a><h3
class="code-header">impl < [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-ArrowReader" class="impl"><a class="src rightside"
href="../../src/iceberg/arrow/reader.rs.html#96">source</a><a
href="#impl-Clone-for-ArrowReader" class="anchor">§</a><h3
class="code-header">impl < [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow_mut" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a
href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a
href= [...]
diff --git a/api/iceberg/arrow/struct.ArrowReaderBuilder.html
b/api/iceberg/arrow/struct.ArrowReaderBuilder.html
index c7d23c5..615b09e 100644
--- a/api/iceberg/arrow/struct.ArrowReaderBuilder.html
+++ b/api/iceberg/arrow/struct.ArrowReaderBuilder.html
@@ -1,7 +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="Builder to
create ArrowReader"><title>ArrowReaderBuilder in iceberg::arrow -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9
[...]
-</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-ArrowReaderBuilder"
class="impl"><a class="src rightside"
href="../../src/iceberg/arrow/reader.rs.html#57-80">source</a><a
href="#impl-ArrowReaderBuilder" class="anchor">§</a><h3
class="code-header">impl <a class="struct" href="struct.ArrowReaderBuilder.
[...]
+<!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="Builder to
create ArrowReader"><title>ArrowReaderBuilder in iceberg::arrow -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9
[...]
+</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-ArrowReaderBuilder"
class="impl"><a class="src rightside"
href="../../src/iceberg/arrow/reader.rs.html#59-93">source</a><a
href="#impl-ArrowReaderBuilder" class="anchor">§</a><h3
class="code-header">impl <a class="struct" href="struct.ArrowReaderBuilder.
[...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_batch_size" class="method"><a class="src rightside"
href="../../src/iceberg/arrow/reader.rs.html#80-83">source</a><h4
class="code-header">pub fn <a href="#method.with_batch_size"
class="fn">with_batch_size</a>(self, batch_size: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Sets the desi [...]
to something other than the default</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.build" class="method"><a class="src rightside"
href="../../src/iceberg/arrow/reader.rs.html#74-79">source</a><h4
class="code-header">pub fn <a href="#method.build" class="fn">build</a>(self)
-> <a class="struct" href="struct.ArrowReader.html" title="struct
iceberg::arrow::ArrowReader">ArrowReader</a></h4></section></summary><div
class="docblock"><p>Build the ArrowReader.</p>
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.build" class="method"><a class="src rightside"
href="../../src/iceberg/arrow/reader.rs.html#86-92">source</a><h4
class="code-header">pub fn <a href="#method.build" class="fn">build</a>(self)
-> <a class="struct" href="struct.ArrowReader.html" title="struct
iceberg::arrow::ArrowReader">ArrowReader</a></h4></section></summary><div
class="docblock"><p>Build the ArrowReader.</p>
</div></details></div></details></div><h2 id="synthetic-implementations"
class="section-header">Auto Trait Implementations<a
href="#synthetic-implementations" class="anchor">§</a></h2><div
id="synthetic-implementations-list"><section
id="impl-Freeze-for-ArrowReaderBuilder" class="impl"><a
href="#impl-Freeze-for-ArrowReaderBuilder" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html"
title="trait core::mar [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
diff --git a/api/iceberg/expr/enum.BoundPredicate.html
b/api/iceberg/expr/enum.BoundPredicate.html
index c5c5359..dca8e31 100644
--- a/api/iceberg/expr/enum.BoundPredicate.html
+++ b/api/iceberg/expr/enum.BoundPredicate.html
@@ -16,8 +16,8 @@
</div><section id="variant.Unary" class="variant"><a href="#variant.Unary"
class="anchor">§</a><h3 class="code-header">Unary(<a class="struct"
href="struct.UnaryExpression.html" title="struct
iceberg::expr::UnaryExpression">UnaryExpression</a><<a class="struct"
href="struct.BoundReference.html" title="struct
iceberg::expr::BoundReference">BoundReference</a>>)</h3></section><div
class="docblock"><p>Unary expression, for example, <code>a IS NULL</code>.</p>
</div><section id="variant.Binary" class="variant"><a href="#variant.Binary"
class="anchor">§</a><h3 class="code-header">Binary(<a class="struct"
href="struct.BinaryExpression.html" title="struct
iceberg::expr::BinaryExpression">BinaryExpression</a><<a class="struct"
href="struct.BoundReference.html" title="struct
iceberg::expr::BoundReference">BoundReference</a>>)</h3></section><div
class="docblock"><p>Binary expression, for example, <code>a > 10</code>.</p>
</div><section id="variant.Set" class="variant"><a href="#variant.Set"
class="anchor">§</a><h3 class="code-header">Set(<a class="struct"
href="struct.SetExpression.html" title="struct
iceberg::expr::SetExpression">SetExpression</a><<a class="struct"
href="struct.BoundReference.html" title="struct
iceberg::expr::BoundReference">BoundReference</a>>)</h3></section><div
class="docblock"><p>Set predicates, for example, <code>a IN (1, 2,
3)</code>.</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-BoundPredicate" class="impl"><a
class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#653">source</a><a
href="#impl-Clone-for-BoundPredicate" class="anchor">§</a><h3
class="code-header">impl <a class="trait" h [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-BoundPredicate" class="impl"><a
class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#653">source</a><a
href="#impl-Clone-for-BoundPredicate" class="anchor">§</a><h3
class="code-header">impl <a class="trait" h [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-BoundPredicate" class="impl"><a class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#653">source</a><a
href="#impl-Serialize-for-BoundPredicate" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html" title="tr
[...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serializer.html"
title="trait
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div
class='docblock'>Serialize this value into the given Serde serializer. <a
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section
id="impl-StructuralPartialEq-for-BoundPredicate" class="impl"><a class="src
rightside" href=". [...]
diff --git a/api/iceberg/expr/struct.BinaryExpression.html
b/api/iceberg/expr/struct.BinaryExpression.html
index b037778..501f205 100644
--- a/api/iceberg/expr/struct.BinaryExpression.html
+++ b/api/iceberg/expr/struct.BinaryExpression.html
@@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Binary
predicate, for example, `a > 10`."><title>BinaryExpression in iceberg::expr
-
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans
[...]
-</div></details><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Bind-for-BinaryExpression%3CT%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#200-211">source</a><a
href="#impl-Bind-for-BinaryExpression%3CT%3E" class="anchor">§</a><h3
class="code-header" [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Bind-for-BinaryExpression%3CT%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#200-211">source</a><a
href="#impl-Bind-for-BinaryExpression%3CT%3E" class="anchor">§</a><h3
class="code-header" [...]
T: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html"
title="trait
serde::de::Deserialize">Deserialize</a><'de>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle"
open><summary><section id="method.deserialize" class="method trait-impl"><a
class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#152">source</a><a
href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a hr
[...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-BinaryExpression%3CT%3E" class="impl"><a class="src
rightside" href="../../src/iceberg/expr/predicate.rs.html#152">source</a><a
href="#impl-Serialize-for-BinaryExpression%3CT%3E" class="anchor">§</a><h3
class="code-header">impl<T> <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trai [...]
T: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html"
title="trait
serde::ser::Serialize">Serialize</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.serialize" class="method trait-impl"><a class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#152">source</a><a
href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a
href="https://docs.rs [...]
diff --git a/api/iceberg/expr/struct.BoundReference.html
b/api/iceberg/expr/struct.BoundReference.html
index 3924e68..7f5b4b4 100644
--- a/api/iceberg/expr/struct.BoundReference.html
+++ b/api/iceberg/expr/struct.BoundReference.html
@@ -6,8 +6,8 @@
) -> Self</h4></section></summary><div class="docblock"><p>Creates a new
bound reference.</p>
</div></details><details class="toggle method-toggle" open><summary><section
id="method.field" class="method"><a class="src rightside"
href="../../src/iceberg/expr/term.rs.html#366-368">source</a><h4
class="code-header">pub fn <a href="#method.field"
class="fn">field</a>(&self) -> &<a class="struct"
href="../spec/struct.NestedField.html" title="struct
iceberg::spec::NestedField">NestedField</a></h4></section></summary><div
class="docblock"><p>Return the field of this reference.</p>
</div></details><details class="toggle method-toggle" open><summary><section
id="method.accessor" class="method"><a class="src rightside"
href="../../src/iceberg/expr/term.rs.html#371-373">source</a><h4
class="code-header">pub fn <a href="#method.accessor"
class="fn">accessor</a>(&self) ->
&StructAccessor</h4></section></summary><div class="docblock"><p>Get this
BoundReference’s Accessor</p>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-BoundReference" class="impl"><a class="src rightside"
href="../../src/iceberg/expr/term.rs.html#342">source</a><a
href="#impl-Clone-for-BoundReference" class="anchor">§</a><h3
class="code-header">im [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-BoundReference" class="impl"><a class="src rightside"
href="../../src/iceberg/expr/term.rs.html#342">source</a><a
href="#impl-Clone-for-BoundReference" class="anchor">§</a><h3
class="code-header">im [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-BoundReference" class="impl"><a class="src rightside"
href="../../src/iceberg/expr/term.rs.html#342">source</a><a
href="#impl-Serialize-for-BoundReference" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html"
title="trait s [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serializer.html"
title="trait
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div
class='docblock'>Serialize this value into the given Serde serializer. <a
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section
id="impl-Eq-for-BoundReference" class="impl"><a class="src rightside"
href="../../src/iceberg/ [...]
diff --git a/api/iceberg/expr/struct.SetExpression.html
b/api/iceberg/expr/struct.SetExpression.html
index cd93a87..5608a77 100644
--- a/api/iceberg/expr/struct.SetExpression.html
+++ b/api/iceberg/expr/struct.SetExpression.html
@@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Set
predicates, for example, `a in (1, 2, 3)`."><title>SetExpression in
iceberg::expr -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans
[...]
-</div></details><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Bind-for-SetExpression%3CT%3E" class="impl"><a
class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#255-266">source</a><a
href="#impl-Bind-for-SetExpression%3CT%3E" class="anchor">§</a><h3
class="code-header">impl& [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Bind-for-SetExpression%3CT%3E" class="impl"><a
class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#255-266">source</a><a
href="#impl-Bind-for-SetExpression%3CT%3E" class="anchor">§</a><h3
class="code-header">impl& [...]
T: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html"
title="trait
serde::de::Deserialize">Deserialize</a><'de>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle"
open><summary><section id="method.deserialize" class="method trait-impl"><a
class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#214">source</a><a
href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a hr
[...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-SetExpression%3CT%3E" class="impl"><a class="src
rightside" href="../../src/iceberg/expr/predicate.rs.html#214">source</a><a
href="#impl-Serialize-for-SetExpression%3CT%3E" class="anchor">§</a><h3
class="code-header">impl<T> <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Seri [...]
T: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html"
title="trait
serde::ser::Serialize">Serialize</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.serialize" class="method trait-impl"><a class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#214">source</a><a
href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a
href="https://docs.rs [...]
diff --git a/api/iceberg/expr/struct.UnaryExpression.html
b/api/iceberg/expr/struct.UnaryExpression.html
index a047c09..e69bf2d 100644
--- a/api/iceberg/expr/struct.UnaryExpression.html
+++ b/api/iceberg/expr/struct.UnaryExpression.html
@@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Unary
predicate, for example, `a IS NULL`."><title>UnaryExpression in iceberg::expr -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-M
[...]
-</div></details><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Bind-for-UnaryExpression%3CT%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#125-132">source</a><a
href="#impl-Bind-for-UnaryExpression%3CT%3E" class="anchor">§</a><h3
class="code-header">i [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Bind-for-UnaryExpression%3CT%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#125-132">source</a><a
href="#impl-Bind-for-UnaryExpression%3CT%3E" class="anchor">§</a><h3
class="code-header">i [...]
T: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html"
title="trait
serde::de::Deserialize">Deserialize</a><'de>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle"
open><summary><section id="method.deserialize" class="method trait-impl"><a
class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#101">source</a><a
href="#method.deserialize" class="anchor">§</a><h4 class="code-header">fn <a hr
[...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-UnaryExpression%3CT%3E" class="impl"><a class="src
rightside" href="../../src/iceberg/expr/predicate.rs.html#101">source</a><a
href="#impl-Serialize-for-UnaryExpression%3CT%3E" class="anchor">§</a><h3
class="code-header">impl<T> <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait. [...]
T: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html"
title="trait
serde::ser::Serialize">Serialize</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.serialize" class="method trait-impl"><a class="src rightside"
href="../../src/iceberg/expr/predicate.rs.html#101">source</a><a
href="#method.serialize" class="anchor">§</a><h4 class="code-header">fn <a
href="https://docs.rs [...]
diff --git a/api/iceberg/index.html b/api/iceberg/index.html
index b5810da..2c1398a 100644
--- a/api/iceberg/index.html
+++ b/api/iceberg/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="Apache
Iceberg Official Native Rust Implementation"><title>iceberg -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497
[...]
+<!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="Apache
Iceberg Official Native Rust Implementation"><title>iceberg -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497
[...]
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2><h3
id="scan-a-table"><a class="doc-anchor" href="#scan-a-table">§</a>Scan A
Table</h3>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span
class="kw">use </span>futures::TryStreamExt;
<span class="kw">use </span>iceberg::io::{FileIO, FileIOBuilder};
diff --git a/api/iceberg/scan/index.html b/api/iceberg/scan/index.html
index f53f3fa..a4ccf0f 100644
--- a/api/iceberg/scan/index.html
+++ b/api/iceberg/scan/index.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Table scan
api."><title>iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Reg
[...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="Table scan
api."><title>iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Reg
[...]
</div></details><h2 id="structs" class="section-header">Structs<a
href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div
class="item-name"><a class="struct" href="struct.FileScanTask.html"
title="struct iceberg::scan::FileScanTask">FileScanTask</a></div><div
class="desc docblock-short">A task to scan part of file.</div></li><li><div
class="item-name"><a class="struct" href="struct.TableScan.html" title="struct
iceberg::scan::TableScan">TableScan</a></div><div class="des [...]
\ No newline at end of file
diff --git a/api/iceberg/scan/struct.FileScanTask.html
b/api/iceberg/scan/struct.FileScanTask.html
index d11519f..8a650b5 100644
--- a/api/iceberg/scan/struct.FileScanTask.html
+++ b/api/iceberg/scan/struct.FileScanTask.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="A task to
scan part of file."><title>FileScanTask in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497
[...]
-</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-FileScanTask"
class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#839-859">source</a><a
href="#impl-FileScanTask" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.FileScanTask.html" title="struct iceb [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.project_field_ids" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#846-848">source</a><h4
class="code-header">pub fn <a href="#method.project_field_ids"
class="fn">project_field_ids</a>(&self) -> &[<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>]</h4></section></summary><div
class="docblock"><p>Returns the project fie [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.predicate" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#851-853">source</a><h4
class="code-header">pub fn <a href="#method.predicate"
class="fn">predicate</a>(&self) -> <a class="enum"
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"
title="enum core::option::Option">Option</a><&<a class="enum"
href="../expr/enum.BoundPredicate.html" t [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.schema" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#856-858">source</a><h4
class="code-header">pub fn <a href="#method.schema"
class="fn">schema</a>(&self) -> &<a class="struct"
href="../spec/struct.Schema.html" title="struct
iceberg::spec::Schema">Schema</a></h4></section></summary><div
class="docblock"><p>Returns the schema id of this file scan task.</p>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-FileScanTask" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#828">source</a><a
href="#impl-Clone-for-FileScanTask" class="anchor">§</a><h3
class="code-header">impl <a cla [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Seria [...]
+<!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 task to
scan part of file."><title>FileScanTask in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e497
[...]
+</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-FileScanTask"
class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#853-873">source</a><a
href="#impl-FileScanTask" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.FileScanTask.html" title="struct iceb [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.project_field_ids" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#860-862">source</a><h4
class="code-header">pub fn <a href="#method.project_field_ids"
class="fn">project_field_ids</a>(&self) -> &[<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>]</h4></section></summary><div
class="docblock"><p>Returns the project fie [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.predicate" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#865-867">source</a><h4
class="code-header">pub fn <a href="#method.predicate"
class="fn">predicate</a>(&self) -> <a class="enum"
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"
title="enum core::option::Option">Option</a><&<a class="enum"
href="../expr/enum.BoundPredicate.html" t [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.schema" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#870-872">source</a><h4
class="code-header">pub fn <a href="#method.schema"
class="fn">schema</a>(&self) -> &<a class="struct"
href="../spec/struct.Schema.html" title="struct
iceberg::spec::Schema">Schema</a></h4></section></summary><div
class="docblock"><p>Returns the schema id of this file scan task.</p>
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-FileScanTask" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#842">source</a><a
href="#impl-Clone-for-FileScanTask" class="anchor">§</a><h3
class="code-header">impl <a cla [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Seria [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serializer.html"
title="trait
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div
class='docblock'>Serialize this value into the given Serde serializer. <a
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details></div><h2
id="synthetic-implementations" class="section-header">Auto Trait
Implementations<a href="#syn [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
diff --git a/api/iceberg/scan/struct.TableScan.html
b/api/iceberg/scan/struct.TableScan.html
index e8ad38d..058f7c3 100644
--- a/api/iceberg/scan/struct.TableScan.html
+++ b/api/iceberg/scan/struct.TableScan.html
@@ -1,9 +1,9 @@
-<!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="Table
scan."><title>TableScan in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCo
[...]
-</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-TableScan" class="impl"><a
class="src rightside"
href="../../src/iceberg/scan.rs.html#290-428">source</a><a
href="#impl-TableScan" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.TableScan.html" title="struct iceberg::scan [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.to_arrow" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#352-360">source</a><h4
class="code-header">pub async fn <a href="#method.to_arrow"
class="fn">to_arrow</a>(&self) -> <a class="type"
href="../type.Result.html" title="type iceberg::Result">Result</a><<a
class="type" href="type.ArrowRecordBatchStream.html" title="type
iceberg::scan::ArrowRecordBatchStream"> [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.column_names" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#363-365">source</a><h4
class="code-header">pub fn <a href="#method.column_names"
class="fn">column_names</a>(&self) -> &[<a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>]</h4></section></summary><div
class="docbl [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.snapshot" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#367-369">source</a><h4
class="code-header">pub fn <a href="#method.snapshot"
class="fn">snapshot</a>(&self) -> &<a class="type"
href="../spec/type.SnapshotRef.html" title="type
iceberg::spec::SnapshotRef">SnapshotRef</a></h4></section></summary><div
class="docblock"><p>Returns a reference to the snapshot [...]
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-TableScan" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#256">source</a><a
href="#impl-Debug-for-TableScan" class="anchor">§</a><h3
class="code-header">impl <a class="tr [...]
+<!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="Table
scan."><title>TableScan in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCo
[...]
+</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-TableScan" class="impl"><a
class="src rightside"
href="../../src/iceberg/scan.rs.html#303-442">source</a><a
href="#impl-TableScan" class="anchor">§</a><h3 class="code-header">impl <a
class="struct" href="struct.TableScan.html" title="struct iceberg::scan [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.to_arrow" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#365-374">source</a><h4
class="code-header">pub async fn <a href="#method.to_arrow"
class="fn">to_arrow</a>(&self) -> <a class="type"
href="../type.Result.html" title="type iceberg::Result">Result</a><<a
class="type" href="type.ArrowRecordBatchStream.html" title="type
iceberg::scan::ArrowRecordBatchStream"> [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.column_names" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#377-379">source</a><h4
class="code-header">pub fn <a href="#method.column_names"
class="fn">column_names</a>(&self) -> &[<a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>]</h4></section></summary><div
class="docbl [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.snapshot" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#381-383">source</a><h4
class="code-header">pub fn <a href="#method.snapshot"
class="fn">snapshot</a>(&self) -> &<a class="type"
href="../spec/type.SnapshotRef.html" title="type
iceberg::spec::SnapshotRef">SnapshotRef</a></h4></section></summary><div
class="docblock"><p>Returns a reference to the snapshot [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-TableScan" class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#265">source</a><a
href="#impl-Debug-for-TableScan" class="anchor">§</a><h3
class="code-header">impl <a class="tr [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow_mut" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a
href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a
href= [...]
diff --git a/api/iceberg/scan/struct.TableScanBuilder.html
b/api/iceberg/scan/struct.TableScanBuilder.html
index 8df96c1..6a16239 100644
--- a/api/iceberg/scan/struct.TableScanBuilder.html
+++ b/api/iceberg/scan/struct.TableScanBuilder.html
@@ -1,19 +1,20 @@
-<!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="Builder to
create table scan."><title>TableScanBuilder in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78
[...]
-</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-TableScanBuilder%3C'a%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#62-253">source</a><a
href="#impl-TableScanBuilder%3C'a%3E" class="anchor">§</a><h3
class="code-header">impl<'a> <a class="struct" href="struct.Tabl [...]
+<!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="Builder to
create table scan."><title>TableScanBuilder in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78
[...]
+</div></details><h2 id="implementations"
class="section-header">Implementations<a href="#implementations"
class="anchor">§</a></h2><div id="implementations-list"><details class="toggle
implementors-toggle" open><summary><section id="impl-TableScanBuilder%3C'a%3E"
class="impl"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#64-262">source</a><a
href="#impl-TableScanBuilder%3C'a%3E" class="anchor">§</a><h3
class="code-header">impl<'a> <a class="struct" href="struct.Tabl [...]
to something other than the default</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_case_sensitive" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#88-91">source</a><h4
class="code-header">pub fn <a href="#method.with_case_sensitive"
class="fn">with_case_sensitive</a>(self, case_sensitive: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)
-> Self</h4></section></summary><div class="docblock"><p>Sets th [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_filter" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#94-99">source</a><h4
class="code-header">pub fn <a href="#method.with_filter"
class="fn">with_filter</a>(self, predicate: <a class="enum"
href="../expr/enum.Predicate.html" title="enum
iceberg::expr::Predicate">Predicate</a>) ->
Self</h4></section></summary><div class="docblock"><p>Specifies a predicate to
use [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.select_all" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#102-105">source</a><h4
class="code-header">pub fn <a href="#method.select_all"
class="fn">select_all</a>(self) -> Self</h4></section></summary><div
class="docblock"><p>Select all columns.</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.select" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#108-114">source</a><h4
class="code-header">pub fn <a href="#method.select" class="fn">select</a>(
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_case_sensitive" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#89-92">source</a><h4
class="code-header">pub fn <a href="#method.with_case_sensitive"
class="fn">with_case_sensitive</a>(self, case_sensitive: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)
-> Self</h4></section></summary><div class="docblock"><p>Sets th [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_filter" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#95-100">source</a><h4
class="code-header">pub fn <a href="#method.with_filter"
class="fn">with_filter</a>(self, predicate: <a class="enum"
href="../expr/enum.Predicate.html" title="enum
iceberg::expr::Predicate">Predicate</a>) ->
Self</h4></section></summary><div class="docblock"><p>Specifies a predicate to
us [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.select_all" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#103-106">source</a><h4
class="code-header">pub fn <a href="#method.select_all"
class="fn">select_all</a>(self) -> Self</h4></section></summary><div
class="docblock"><p>Select all columns.</p>
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.select" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#109-115">source</a><h4
class="code-header">pub fn <a href="#method.select" class="fn">select</a>(
self,
column_names: impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html"
title="trait
core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = impl <a
class="trait"
href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html"
title="trait alloc::string::ToString">ToString</a>>,
) -> Self</h4></section></summary><div class="docblock"><p>Select some
columns of the table.</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.snapshot_id" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#117-120">source</a><h4
class="code-header">pub fn <a href="#method.snapshot_id"
class="fn">snapshot_id</a>(self, snapshot_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) ->
Self</h4></section></summary><div class="docblock"><p>Set the snapshot to scan.
When not [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_concurrency_limit" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#124-128">source</a><h4
class="code-header">pub fn <a href="#method.with_concurrency_limit"
class="fn">with_concurrency_limit</a>(self, limit: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Set [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.snapshot_id" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#118-121">source</a><h4
class="code-header">pub fn <a href="#method.snapshot_id"
class="fn">snapshot_id</a>(self, snapshot_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>) ->
Self</h4></section></summary><div class="docblock"><p>Set the snapshot to scan.
When not [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_concurrency_limit" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#125-130">source</a><h4
class="code-header">pub fn <a href="#method.with_concurrency_limit"
class="fn">with_concurrency_limit</a>(self, limit: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summary><div class="docblock"><p>Set [...]
entries for this scan</p>
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_manifest_file_concurrency_limit" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#131-134">source</a><h4
class="code-header">pub fn <a
href="#method.with_manifest_file_concurrency_limit"
class="fn">with_manifest_file_concurrency_limit</a>(self, limit: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></sect [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_manifest_entry_concurrency_limit" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#137-140">source</a><h4
class="code-header">pub fn <a
href="#method.with_manifest_entry_concurrency_limit"
class="fn">with_manifest_entry_concurrency_limit</a>(self, limit: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></s [...]
-</div></details><details class="toggle method-toggle" open><summary><section
id="method.build" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#143-252">source</a><h4
class="code-header">pub fn <a href="#method.build" class="fn">build</a>(self)
-> <a class="type" href="../type.Result.html" title="type
iceberg::Result">Result</a><<a class="struct" href="struct.TableScan.html"
title="struct
iceberg::scan::TableScan">TableScan</a>></h4></section></summar [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_data_file_concurrency_limit" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#133-136">source</a><h4
class="code-header">pub fn <a href="#method.with_data_file_concurrency_limit"
class="fn">with_data_file_concurrency_limit</a>(self, limit: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></section></summar [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_manifest_entry_concurrency_limit" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#139-142">source</a><h4
class="code-header">pub fn <a
href="#method.with_manifest_entry_concurrency_limit"
class="fn">with_manifest_entry_concurrency_limit</a>(self, limit: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></s [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.with_manifest_file_concurrency_limit" class="method"><a class="src
rightside" href="../../src/iceberg/scan.rs.html#145-148">source</a><h4
class="code-header">pub fn <a
href="#method.with_manifest_file_concurrency_limit"
class="fn">with_manifest_file_concurrency_limit</a>(self, limit: <a
class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)
-> Self</h4></sect [...]
+</div></details><details class="toggle method-toggle" open><summary><section
id="method.build" class="method"><a class="src rightside"
href="../../src/iceberg/scan.rs.html#151-261">source</a><h4
class="code-header">pub fn <a href="#method.build" class="fn">build</a>(self)
-> <a class="type" href="../type.Result.html" title="type
iceberg::Result">Result</a><<a class="struct" href="struct.TableScan.html"
title="struct
iceberg::scan::TableScan">TableScan</a>></h4></section></summar [...]
</div></details></div></details></div><h2 id="synthetic-implementations"
class="section-header">Auto Trait Implementations<a
href="#synthetic-implementations" class="anchor">§</a></h2><div
id="synthetic-implementations-list"><section
id="impl-Freeze-for-TableScanBuilder%3C'a%3E" class="impl"><a
href="#impl-Freeze-for-TableScanBuilder%3C'a%3E" class="anchor">§</a><h3
class="code-header">impl<'a> <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.borrow" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210">source</a><a
href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a
href="https:/ [...]
diff --git a/api/iceberg/scan/type.ArrowRecordBatchStream.html
b/api/iceberg/scan/type.ArrowRecordBatchStream.html
index 1109c63..3e8d71c 100644
--- a/api/iceberg/scan/type.ArrowRecordBatchStream.html
+++ b/api/iceberg/scan/type.ArrowRecordBatchStream.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="A stream
of arrow `RecordBatch`es."><title>ArrowRecordBatchStream in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me
[...]
+<!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 stream
of arrow `RecordBatch`es."><title>ArrowRecordBatchStream in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Me
[...]
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a
href="#aliased-type" class="anchor">§</a></h2><pre class="rust
item-decl"><code>struct ArrowRecordBatchStream
{}</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg/scan/type.FileScanTaskStream.html
b/api/iceberg/scan/type.FileScanTaskStream.html
index 0b40e04..1e45816 100644
--- a/api/iceberg/scan/type.FileScanTaskStream.html
+++ b/api/iceberg/scan/type.FileScanTaskStream.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta
name="viewport" content="width=device-width, initial-scale=1.0"><meta
name="generator" content="rustdoc"><meta name="description" content="A stream
of `FileScanTask`."><title>FileScanTaskStream in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78
[...]
+<!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 stream
of `FileScanTask`."><title>FileScanTaskStream in iceberg::scan -
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a78
[...]
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a
href="#aliased-type" class="anchor">§</a></h2><pre class="rust
item-decl"><code>struct FileScanTaskStream
{}</code></pre></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg/spec/enum.DataFileFormat.html
b/api/iceberg/spec/enum.DataFileFormat.html
index 4fa00c2..8b9aa65 100644
--- a/api/iceberg/spec/enum.DataFileFormat.html
+++ b/api/iceberg/spec/enum.DataFileFormat.html
@@ -6,7 +6,7 @@
</div></details><h2 id="variants" class="variants section-header">Variants<a
href="#variants" class="anchor">§</a></h2><div class="variants"><section
id="variant.Avro" class="variant"><a href="#variant.Avro"
class="anchor">§</a><h3 class="code-header">Avro</h3></section><div
class="docblock"><p>Avro file format: <a
href="https://avro.apache.org/">https://avro.apache.org/</a></p>
</div><section id="variant.Orc" class="variant"><a href="#variant.Orc"
class="anchor">§</a><h3 class="code-header">Orc</h3></section><div
class="docblock"><p>Orc file format: <a
href="https://orc.apache.org/">https://orc.apache.org/</a></p>
</div><section id="variant.Parquet" class="variant"><a href="#variant.Parquet"
class="anchor">§</a><h3 class="code-header">Parquet</h3></section><div
class="docblock"><p>Parquet file format: <a
href="https://parquet.apache.org/">https://parquet.apache.org/</a></p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-DataFileFormat" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/manifest.rs.html#1171">source</a><a
href="#impl-Clone-for-DataFileFormat" class="anchor">§</a><h3
class="code-header">impl <a class="trait" h [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-DataFileFormat" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/manifest.rs.html#1171">source</a><a
href="#impl-Clone-for-DataFileFormat" class="anchor">§</a><h3
class="code-header">impl <a class="trait" h [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><section
id="impl-Copy-for-DataFileFormat" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/manifest.rs.html#1171">source</a><a
href="#impl-Copy-for-DataFileFormat" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html"
title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.Dat
[...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
diff --git a/api/iceberg/spec/enum.SortDirection.html
b/api/iceberg/spec/enum.SortDirection.html
index 67bfaf3..093a060 100644
--- a/api/iceberg/spec/enum.SortDirection.html
+++ b/api/iceberg/spec/enum.SortDirection.html
@@ -4,8 +4,8 @@
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Sort direction in a partition, either ascending or
descending</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a
href="#variants" class="anchor">§</a></h2><div class="variants"><section
id="variant.Ascending" class="variant"><a href="#variant.Ascending"
class="anchor">§</a><h3 class="code-header">Ascending</h3></section><div
class="docblock"><p>Ascending</p>
</div><section id="variant.Descending" class="variant"><a
href="#variant.Descending" class="anchor">§</a><h3
class="code-header">Descending</h3></section><div
class="docblock"><p>Descending</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-SortDirection" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/sort.rs.html#35">source</a><a
href="#impl-Clone-for-SortDirection" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="htt [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-SortDirection" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/sort.rs.html#35">source</a><a
href="#impl-Clone-for-SortDirection" class="anchor">§</a><h3
class="code-header">impl <a class="trait" href="htt [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-Serialize-for-SortDirection" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/sort.rs.html#35">source</a><a
href="#impl-Serialize-for-SortDirection" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html"
title="trait serd [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serializer.html"
title="trait
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div
class='docblock'>Serialize this value into the given Serde serializer. <a
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section
id="impl-Copy-for-SortDirection" class="impl"><a class="src rightside"
href="../../src/iceberg [...]
diff --git a/api/iceberg/spec/enum.Transform.html
b/api/iceberg/spec/enum.Transform.html
index 4ac8785..a1b1f21 100644
--- a/api/iceberg/spec/enum.Transform.html
+++ b/api/iceberg/spec/enum.Transform.html
@@ -125,8 +125,8 @@ and filtering based on the original, untransformed data.</p>
<code>bucket(a, 37) as bs</code>, if one row matches <code>a = 10</code>, then
its partition
value should match <code>bucket(10, 37) as bs</code>, and we project <code>a =
10</code> to
<code>bs = bucket(10, 37)</code></p>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Transform" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/transform.rs.html#48">source</a><a
href="#impl-Clone-for-Transform" class="anchor">§</a><h3
class="code-header">impl <a [...]
- D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Transform" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/transform.rs.html#48">source</a><a
href="#impl-Clone-for-Transform" class="anchor">§</a><h3
class="code-header">impl <a [...]
+ D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-Transform"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/transform.rs.html#672-677">source</a><a
href="#impl-Serialize-for-Transform" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html"
title="trait se [...]
S: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serializer.html"
title="trait
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div
class='docblock'>Serialize this value into the given Serde serializer. <a
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section id="impl-Copy-for-Transform"
class="impl"><a class="src rightside" href="../../src/iceberg/spec/ [...]
diff --git a/api/iceberg/spec/enum.Type.html b/api/iceberg/spec/enum.Type.html
index e28508f..5f7a5fe 100644
--- a/api/iceberg/spec/enum.Type.html
+++ b/api/iceberg/spec/enum.Type.html
@@ -17,8 +17,8 @@
</div></details><details class="toggle method-toggle" open><summary><section
id="method.decimal_required_bytes" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#153-156">source</a><h4
class="code-header">pub fn <a href="#method.decimal_required_bytes"
class="fn">decimal_required_bytes</a>(precision: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) ->
<a class="type" href="../type.Result.html" title="typ [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.decimal" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#160-163">source</a><h4
class="code-header">pub fn <a href="#method.decimal"
class="fn">decimal</a>(precision: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, scale:
<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -&g
[...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.is_floating_type" class="method"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#167-172">source</a><h4
class="code-header">pub fn <a href="#method.is_floating_type"
class="fn">is_floating_type</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div
class="docblock"><p>Check if it’s float o [...]
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Type" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#80">source</a><a
href="#impl-Clone-for-Type" class="anchor">§</a><h3 class="code-header">impl <a
class="tra [...]
- D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Type" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#80">source</a><a
href="#impl-Clone-for-Type" class="anchor">§</a><h3 class="code-header">impl <a
class="tra [...]
+ D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-Type"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/datatypes.rs.html#261-267">source</a><a
href="#impl-Serialize-for-Type" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html"
title="trait serde::ser:: [...]
S: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serializer.html"
title="trait
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div
class='docblock'>Serialize this value into the given Serde serializer. <a
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><section id="impl-Eq-for-Type"
class="impl"><a class="src rightside" href="../../src/iceberg/spec/datatyp [...]
diff --git a/api/iceberg/spec/enum.UnboundPartitionSpecBuilderError.html
b/api/iceberg/spec/enum.UnboundPartitionSpecBuilderError.html
index f47526c..69a3b13 100644
--- a/api/iceberg/spec/enum.UnboundPartitionSpecBuilderError.html
+++ b/api/iceberg/spec/enum.UnboundPartitionSpecBuilderError.html
@@ -4,7 +4,7 @@
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Error type for UnboundPartitionSpecBuilder</p>
</div></details><h2 id="variants" class="variants section-header">Variants
(Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details
class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked
as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums
could have additional variants added in future. Therefore, when matching
against variants of non-exhaustive enums, an extra wildcard arm must be added
to account for any future variants.</di [...]
</div><section id="variant.ValidationError" class="variant"><a
href="#variant.ValidationError" class="anchor">§</a><h3
class="code-header">ValidationError(<a class="struct"
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"
title="struct alloc::string::String">String</a>)</h3></section><div
class="docblock"><p>Custom validation error</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Debug-for-UnboundPartitionSpecBuilderError"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/partition.rs.html#120">source</a><a
href="#impl-Debug-for-UnboundPartitionSpecBuilderError" class="anchor">§</a><h3
class=" [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Debug-for-UnboundPartitionSpecBuilderError"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/partition.rs.html#120">source</a><a
href="#impl-Debug-for-UnboundPartitionSpecBuilderError" class="anchor">§</a><h3
class=" [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html"
title="trait core::error::Error">Error</a> +
'static,</div></h3></section></summary><div class="impl-items"><details
class="toggle method-toggle" open><summary><section id="method.as_error_source"
class="method trait-impl"><a href="#method.as_error_source"
class="anchor">§</a><h4 class="code-header">fn <a
class="fn">as_error_source</a>(&self) -> &(dyn <a class="trait"
href="https://doc [...]
to benefit from Rust’s automatic dereferencing of method
diff --git a/api/iceberg/spec/enum.ViewFormatVersion.html
b/api/iceberg/spec/enum.ViewFormatVersion.html
index 7a98b43..9f2996f 100644
--- a/api/iceberg/spec/enum.ViewFormatVersion.html
+++ b/api/iceberg/spec/enum.ViewFormatVersion.html
@@ -2,8 +2,8 @@
V1 = 1,
}</code></pre><details class="toggle top-doc" open><summary
class="hideme"><span>Expand description</span></summary><div
class="docblock"><p>Iceberg format version</p>
</div></details><h2 id="variants" class="variants section-header">Variants<a
href="#variants" class="anchor">§</a></h2><div class="variants"><section
id="variant.V1" class="variant"><a href="#variant.V1" class="anchor">§</a><h3
class="code-header">V1 = 1</h3></section><div class="docblock"><p>Iceberg view
spec version 1</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-ViewFormatVersion" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/view_metadata.rs.html#397">source</a><a
href="#impl-Clone-for-ViewFormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class [...]
- D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait
Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div
id="trait-implementations-list"><details class="toggle implementors-toggle"
open><summary><section id="impl-Clone-for-ViewFormatVersion" class="impl"><a
class="src rightside"
href="../../src/iceberg/spec/view_metadata.rs.html#397">source</a><a
href="#impl-Clone-for-ViewFormatVersion" class="anchor">§</a><h3
class="code-header">impl <a class [...]
+ D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Display [...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Compares and returns the maximum of two values. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.max">Read
more</a></div></details><details class="toggle method-toggle"
open><summary><section id="method.min" class="method trait-impl"><span
class="rightside"><span class="si [...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Compares and returns the minimum of two values. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.min">Read
more</a></div></details><details class="toggle method-toggle"
open><summary><section id="method.clamp" class="method trait-impl"><span
class="rightside"><span class=" [...]
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a> + <a class="trait"
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html"
title="trait
core::cmp::PartialOrd">PartialOrd</a>,</div></h4></section></summary><div
class='docblock'>Restrict a value to a certain interval. <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.clamp">Read
more</a></div></details></div> [...]
diff --git a/api/iceberg/spec/struct.Datum.html
b/api/iceberg/spec/struct.Datum.html
index d44edfd..9202cc4 100644
--- a/api/iceberg/spec/struct.Datum.html
+++ b/api/iceberg/spec/struct.Datum.html
@@ -251,7 +251,7 @@ Example:</p>
</div></details><details class="toggle method-toggle" open><summary><section
id="method.data_type" class="method"><a class="src rightside"
href="../../src/iceberg/spec/values.rs.html#1002-1004">source</a><h4
class="code-header">pub fn <a href="#method.data_type"
class="fn">data_type</a>(&self) -> &<a class="enum"
href="enum.PrimitiveType.html" title="enum
iceberg::spec::PrimitiveType">PrimitiveType</a></h4></section></summary><div
class="docblock"><p>Get the primitive type fro [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.is_nan" class="method"><a class="src rightside"
href="../../src/iceberg/spec/values.rs.html#1008-1014">source</a><h4
class="code-header">pub fn <a href="#method.is_nan"
class="fn">is_nan</a>(&self) -> <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div
class="docblock"><p>Returns true if the Literal represents a primitive type
that can be a NaN, and that it’s value is NaN</p>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Datum" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/values.rs.html#95">source</a><a
href="#impl-Clone-for-Datum" class="anchor">§</a><h3 class="code-header">impl
<a class="trai [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Datum" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/values.rs.html#95">source</a><a
href="#impl-Clone-for-Datum" class="anchor">§</a><h3 class="code-header">impl
<a class="trai [...]
H: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"
title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div
class='docblock'>Feeds a slice of this type into the given <a
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html"
title="trait core::hash::Hasher"><code>Hasher</code></a>. <a
href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read
more</a></div></details></div></d [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
diff --git a/api/iceberg/spec/struct.Schema.html
b/api/iceberg/spec/struct.Schema.html
index 928ec4e..601a398 100644
--- a/api/iceberg/spec/struct.Schema.html
+++ b/api/iceberg/spec/struct.Schema.html
@@ -17,8 +17,8 @@
</div></details><details class="toggle method-toggle" open><summary><section
id="method.field_id_by_name" class="method"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#337-339">source</a><h4
class="code-header">pub fn <a href="#method.field_id_by_name"
class="fn">field_id_by_name</a>(&self, name: &<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) ->
<a class="enum" href="https://doc.rust-lang.org/nightly/core/op [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.name_by_field_id" class="method"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#342-344">source</a><h4
class="code-header">pub fn <a href="#method.name_by_field_id"
class="fn">name_by_field_id</a>(&self, field_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) ->
<a class="enum" href="https://doc.rust-lang.org/nightly/core/opt [...]
</div></details><details class="toggle method-toggle" open><summary><section
id="method.accessor_by_field_id" class="method"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#347-349">source</a><h4
class="code-header">pub fn <a href="#method.accessor_by_field_id"
class="fn">accessor_by_field_id</a>(&self, field_id: <a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>) ->
<a class="enum" href="https://doc.rust-lang.org/nigh [...]
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Schema" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#45">source</a><a
href="#impl-Clone-for-Schema" class="anchor">§</a><h3 class="code-header">impl
<a class="tr [...]
- __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Clone-for-Schema" class="impl"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#45">source</a><a
href="#impl-Clone-for-Schema" class="anchor">§</a><h3 class="code-header">impl
<a class="tr [...]
+ __D: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserializer.html"
title="trait
serde::de::Deserializer">Deserializer</a><'de>,</div></h4></section></summary><div
class='docblock'>Deserialize this value from the given Serde deserializer. <a
href="https://docs.rs/serde/1.0.207/serde/de/trait.Deserialize.html#tymethod.deserialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Displ [...]
by <code>==</code>.</div></details><details class="toggle method-toggle"
open><summary><section id="method.ne" class="method trait-impl"><span
class="rightside"><span class="since" title="Stable since Rust version
1.0.0">1.0.0</span> · <a class="src"
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#263">source</a></span><a
href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a
href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne"
class= [...]
sufficient, and should not be overridden without very good
reason.</div></details></div></details><details class="toggle
implementors-toggle" open><summary><section id="impl-Serialize-for-Schema"
class="impl"><a class="src rightside"
href="../../src/iceberg/spec/schema.rs.html#45">source</a><a
href="#impl-Serialize-for-Schema" class="anchor">§</a><h3
class="code-header">impl <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html"
title="trait serde::ser::Seri [...]
__S: <a class="trait"
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serializer.html"
title="trait
serde::ser::Serializer">Serializer</a>,</div></h4></section></summary><div
class='docblock'>Serialize this value into the given Serde serializer. <a
href="https://docs.rs/serde/1.0.207/serde/ser/trait.Serialize.html#tymethod.serialize">Read
more</a></div></details></div></details><details class="toggle
implementors-toggle" open><summary><section
id="impl-TryFrom%3C%26Schema%3E-for- [...]
diff --git a/api/iceberg/struct.Error.html b/api/iceberg/struct.Error.html
index 8a72984..185a059 100644
--- a/api/iceberg/struct.Error.html
+++ b/api/iceberg/struct.Error.html
@@ -35,7 +35,7 @@ Backtrace:
</div></details><details class="toggle method-toggle" open><summary><section
id="method.kind" class="method"><a class="src rightside"
href="../src/iceberg/error.rs.html#241-243">source</a><h4
class="code-header">pub fn <a href="#method.kind"
class="fn">kind</a>(&self) -> <a class="enum" href="enum.ErrorKind.html"
title="enum iceberg::ErrorKind">ErrorKind</a></h4></section></summary><div
class="docblock"><p>Return error’s kind.</p>
<p>Users can use this method to check error’s kind and take actions.</p>
</div></details><details class="toggle method-toggle" open><summary><section
id="method.message" class="method"><a class="src rightside"
href="../src/iceberg/error.rs.html#247-249">source</a><h4
class="code-header">pub fn <a href="#method.message"
class="fn">message</a>(&self) -> &<a class="primitive"
href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div
class="docblock"><p>Return error’s message.</p>
-</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-Error" class="impl"><a class="src rightside"
href="../src/iceberg/error.rs.html#148-187">source</a><a
href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl
<a class="trait" h [...]
+</div></details></div></details></div><h2 id="trait-implementations"
class="section-header">Trait Implementations<a href="#trait-implementations"
class="anchor">§</a></h2><div id="trait-implementations-list"><details
class="toggle implementors-toggle" open><summary><section
id="impl-Debug-for-Error" class="impl"><a class="src rightside"
href="../src/iceberg/error.rs.html#148-187">source</a><a
href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl
<a class="trait" h [...]
T: 'static + ?<a class="trait"
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div
class="impl-items"><details class="toggle method-toggle" open><summary><section
id="method.type_id" class="method trait-impl"><a class="src rightside"
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141">source</a><a
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href
[...]
T: <a class="trait"
href="https://doc.rust-lang.org/nightly/core/error/trait.Error.html"
title="trait core::error::Error">Error</a> +
'static,</div></h3></section></summary><div class="impl-items"><details
class="toggle method-toggle" open><summary><section id="method.as_error_source"
class="method trait-impl"><a href="#method.as_error_source"
class="anchor">§</a><h4 class="code-header">fn <a
class="fn">as_error_source</a>(&self) -> &(dyn <a class="trait"
href="https://doc [...]
to benefit from Rust’s automatic dereferencing of method
diff --git a/api/search-index.js b/api/search-index.js
index 2077b8c..45e0ef8 100644
--- a/api/search-index.js
+++ b/api/search-index.js
@@ -1,5 +1,5 @@
var searchIndex = new Map(JSON.parse('[\
-["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
[...]
+["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
[...]
["iceberg_catalog_glue",{"t":"SSSSSFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQ","n":["AWS_ACCESS_KEY_ID","AWS_PROFILE_NAME","AWS_REGION_NAME","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","GlueCatalog","GlueCatalogConfig","borrow","borrow","borrow_mut","borrow_mut","builder","create_namespace","create_table","drop_namespace","drop_table","file_io","fmt","fmt","from","from","get_namespace","into","into","into_shared","into_shared","list_namespaces","list_tables","load_table","namespace_exists",
[...]
["iceberg_catalog_hms",{"t":"PPFFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Buffered","Framed","HmsCatalog","HmsCatalogConfig","HmsThriftTransport","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","builder","create_namespace","create_table","default","drop_namespace","drop_table","file_io","fmt","fmt","fmt","from","from","from","get_namespace","into","into","into","list_namespaces","list_tables","load_table","namespace_exists","new","rename_table","table_exists
[...]
["iceberg_catalog_memory",{"t":"FNNNNNNNNNNNNNNNNNNNNNNN","n":["MemoryCatalog","borrow","borrow_mut","create_namespace","create_table","drop_namespace","drop_table","fmt","from","get_namespace","into","list_namespaces","list_tables","load_table","namespace_exists","new","rename_table","table_exists","try_from","try_into","type_id","update_namespace","update_table","vzip"],"q":[[0,"iceberg_catalog_memory"],[24,"iceberg_catalog_memory::catalog"],[25,"iceberg::catalog"],[26,"alloc::string"]
[...]
diff --git a/api/search.desc/iceberg/iceberg-desc-0-.js
b/api/search.desc/iceberg/iceberg-desc-0-.js
index 0402c35..021628b 100644
--- a/api/search.desc/iceberg/iceberg-desc-0-.js
+++ b/api/search.desc/iceberg/iceberg-desc-0-.js
@@ -1 +1 @@
-searchState.loadedDescShard("iceberg", 0, "Apache Iceberg Official Native Rust
Implementation\nAdd a new schema to the table\nAdd snapshot to table.\nAdd sort
order to table.\nAdd a new partition spec to the table\nAssign a new UUID to
the table\nThe catalog API for Iceberg Rust.\nThe table’s current schema id
must match the requirement.\nIceberg data is invalid.\nThe table’s default sort
order id must match the …\nThe table’s default spec id must match the
requirement.\nContains the err [...]
\ No newline at end of file
+searchState.loadedDescShard("iceberg", 0, "Apache Iceberg Official Native Rust
Implementation\nAdd a new schema to the table\nAdd snapshot to table.\nAdd sort
order to table.\nAdd a new partition spec to the table\nAssign a new UUID to
the table\nThe catalog API for Iceberg Rust.\nThe table’s current schema id
must match the requirement.\nIceberg data is invalid.\nThe table’s default sort
order id must match the …\nThe table’s default spec id must match the
requirement.\nContains the err [...]
\ No newline at end of file
diff --git a/api/src-files.js b/api/src-files.js
index 07be271..c3e21b4 100644
--- a/api/src-files.js
+++ b/api/src-files.js
@@ -1,5 +1,5 @@
var srcIndex = new Map(JSON.parse('[\
-["iceberg",["",[["arrow",[],["mod.rs","reader.rs","schema.rs"]],["avro",[],["mod.rs","schema.rs"]],["catalog",[],["mod.rs"]],["expr",[["visitors",[],["bound_predicate_visitor.rs","expression_evaluator.rs","inclusive_metrics_evaluator.rs","inclusive_projection.rs","manifest_evaluator.rs","mod.rs"]]],["accessor.rs","mod.rs","predicate.rs","term.rs"]],["io",[],["file_io.rs","mod.rs","storage.rs","storage_fs.rs","storage_gcs.rs","storage_memory.rs","storage_s3.rs"]],["runtime",[],["mod.rs"]]
[...]
+["iceberg",["",[["arrow",[],["mod.rs","reader.rs","schema.rs"]],["avro",[],["mod.rs","schema.rs"]],["catalog",[],["mod.rs"]],["expr",[["visitors",[],["bound_predicate_visitor.rs","expression_evaluator.rs","inclusive_metrics_evaluator.rs","inclusive_projection.rs","manifest_evaluator.rs","mod.rs"]]],["accessor.rs","mod.rs","predicate.rs","term.rs"]],["io",[],["file_io.rs","mod.rs","storage.rs","storage_fs.rs","storage_gcs.rs","storage_memory.rs","storage_s3.rs"]],["runtime",[],["mod.rs"]]
[...]
["iceberg_catalog_glue",["",[],["catalog.rs","error.rs","lib.rs","schema.rs","utils.rs"]]],\
["iceberg_catalog_hms",["",[],["catalog.rs","error.rs","lib.rs","schema.rs","utils.rs"]]],\
["iceberg_catalog_memory",["",[],["catalog.rs","lib.rs","namespace_state.rs"]]],\
diff --git a/api/src/iceberg/arrow/reader.rs.html
b/api/src/iceberg/arrow/reader.rs.html
index fd875bf..09af83e 100644
--- a/api/src/iceberg/arrow/reader.rs.html
+++ b/api/src/iceberg/arrow/reader.rs.html
@@ -949,6 +949,58 @@
<a href="#949" id="949">949</a>
<a href="#950" id="950">950</a>
<a href="#951" id="951">951</a>
+<a href="#952" id="952">952</a>
+<a href="#953" id="953">953</a>
+<a href="#954" id="954">954</a>
+<a href="#955" id="955">955</a>
+<a href="#956" id="956">956</a>
+<a href="#957" id="957">957</a>
+<a href="#958" id="958">958</a>
+<a href="#959" id="959">959</a>
+<a href="#960" id="960">960</a>
+<a href="#961" id="961">961</a>
+<a href="#962" id="962">962</a>
+<a href="#963" id="963">963</a>
+<a href="#964" id="964">964</a>
+<a href="#965" id="965">965</a>
+<a href="#966" id="966">966</a>
+<a href="#967" id="967">967</a>
+<a href="#968" id="968">968</a>
+<a href="#969" id="969">969</a>
+<a href="#970" id="970">970</a>
+<a href="#971" id="971">971</a>
+<a href="#972" id="972">972</a>
+<a href="#973" id="973">973</a>
+<a href="#974" id="974">974</a>
+<a href="#975" id="975">975</a>
+<a href="#976" id="976">976</a>
+<a href="#977" id="977">977</a>
+<a href="#978" id="978">978</a>
+<a href="#979" id="979">979</a>
+<a href="#980" id="980">980</a>
+<a href="#981" id="981">981</a>
+<a href="#982" id="982">982</a>
+<a href="#983" id="983">983</a>
+<a href="#984" id="984">984</a>
+<a href="#985" id="985">985</a>
+<a href="#986" id="986">986</a>
+<a href="#987" id="987">987</a>
+<a href="#988" id="988">988</a>
+<a href="#989" id="989">989</a>
+<a href="#990" id="990">990</a>
+<a href="#991" id="991">991</a>
+<a href="#992" id="992">992</a>
+<a href="#993" id="993">993</a>
+<a href="#994" id="994">994</a>
+<a href="#995" id="995">995</a>
+<a href="#996" id="996">996</a>
+<a href="#997" id="997">997</a>
+<a href="#998" id="998">998</a>
+<a href="#999" id="999">999</a>
+<a href="#1000" id="1000">1000</a>
+<a href="#1001" id="1001">1001</a>
+<a href="#1002" id="1002">1002</a>
+<a href="#1003" id="1003">1003</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
@@ -978,12 +1030,11 @@
<span class="kw">use </span>arrow_ord::cmp::{eq, gt, gt_eq, lt, lt_eq, neq};
<span class="kw">use </span>arrow_schema::{ArrowError, DataType, SchemaRef
<span class="kw">as </span>ArrowSchemaRef};
<span class="kw">use </span>arrow_string::like::starts_with;
-<span class="kw">use </span>async_stream::try_stream;
<span class="kw">use </span>bytes::Bytes;
<span class="kw">use </span>fnv::FnvHashSet;
+<span class="kw">use </span>futures::channel::mpsc::{channel, Sender};
<span class="kw">use </span>futures::future::BoxFuture;
-<span class="kw">use </span>futures::stream::StreamExt;
-<span class="kw">use </span>futures::{try_join, TryFutureExt};
+<span class="kw">use </span>futures::{try_join, SinkExt, StreamExt,
TryFutureExt, TryStreamExt};
<span class="kw">use </span>parquet::arrow::arrow_reader::{ArrowPredicateFn,
RowFilter};
<span class="kw">use </span>parquet::arrow::async_reader::{AsyncFileReader,
MetadataLoader};
<span class="kw">use </span>parquet::arrow::{ParquetRecordBatchStreamBuilder,
ProjectionMask, PARQUET_FIELD_ID_META_KEY};
@@ -995,25 +1046,38 @@
<span class="kw">use </span><span
class="kw">crate</span>::expr::visitors::bound_predicate_visitor::{visit,
BoundPredicateVisitor};
<span class="kw">use </span><span
class="kw">crate</span>::expr::{BoundPredicate, BoundReference};
<span class="kw">use </span><span class="kw">crate</span>::io::{FileIO,
FileMetadata, FileRead};
-<span class="kw">use </span><span
class="kw">crate</span>::scan::{ArrowRecordBatchStream, FileScanTaskStream};
+<span class="kw">use </span><span class="kw">crate</span>::runtime::spawn;
+<span class="kw">use </span><span
class="kw">crate</span>::scan::{ArrowRecordBatchStream, FileScanTask,
FileScanTaskStream};
<span class="kw">use </span><span class="kw">crate</span>::spec::{Datum,
Schema};
+<span class="kw">use </span><span
class="kw">crate</span>::utils::available_parallelism;
<span class="kw">use crate</span>::{Error, ErrorKind};
<span class="doccomment">/// Builder to create ArrowReader
</span><span class="kw">pub struct </span>ArrowReaderBuilder {
batch_size: <span class="prelude-ty">Option</span><usize>,
file_io: FileIO,
+ concurrency_limit_data_files: usize,
}
<span class="kw">impl </span>ArrowReaderBuilder {
<span class="doccomment">/// Create a new ArrowReaderBuilder
</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span
class="kw">fn </span>new(file_io: FileIO) -> <span class="self">Self </span>{
+ <span class="kw">let </span>num_cpus = available_parallelism().get();
+
ArrowReaderBuilder {
batch_size: <span class="prelude-val">None</span>,
file_io,
+ concurrency_limit_data_files: num_cpus,
}
}
+ <span class="doccomment">/// Sets the max number of in flight data files
that are being fetched
+ </span><span class="kw">pub fn
</span>with_data_file_concurrency_limit(<span class="kw-2">mut </span><span
class="self">self</span>, val: usize) -> <span class="self">Self </span>{
+ <span class="self">self</span>.concurrency_limit_data_files = val;
+
+ <span class="self">self
+ </span>}
+
<span class="doccomment">/// Sets the desired size of batches in the
response
/// to something other than the default
</span><span class="kw">pub fn </span>with_batch_size(<span
class="kw-2">mut </span><span class="self">self</span>, batch_size: usize)
-> <span class="self">Self </span>{
@@ -1026,6 +1090,7 @@
ArrowReader {
batch_size: <span class="self">self</span>.batch_size,
file_io: <span class="self">self</span>.file_io,
+ concurrency_limit_data_files: <span
class="self">self</span>.concurrency_limit_data_files,
}
}
}
@@ -1035,73 +1100,113 @@
</span><span class="kw">pub struct </span>ArrowReader {
batch_size: <span class="prelude-ty">Option</span><usize>,
file_io: FileIO,
+
+ <span class="doccomment">/// the maximum number of data files that can be
fetched at the same time
+ </span>concurrency_limit_data_files: usize,
}
<span class="kw">impl </span>ArrowReader {
<span class="doccomment">/// Take a stream of FileScanTasks and reads all
the files.
/// Returns a stream of Arrow RecordBatches containing the data from the
files
- </span><span class="kw">pub fn </span>read(<span class="self">self</span>,
<span class="kw-2">mut </span>tasks: FileScanTaskStream) -> <span
class="kw">crate</span>::Result<ArrowRecordBatchStream> {
+ </span><span class="kw">pub fn </span>read(<span class="self">self</span>,
tasks: FileScanTaskStream) -> <span
class="prelude-ty">Result</span><ArrowRecordBatchStream> {
<span class="kw">let </span>file_io = <span
class="self">self</span>.file_io.clone();
-
- <span class="prelude-val">Ok</span>(<span
class="macro">try_stream!</span> {
- <span class="kw">while let </span><span
class="prelude-val">Some</span>(task_result) = tasks.next().<span
class="kw">await </span>{
- <span class="kw">match </span>task_result {
- <span class="prelude-val">Ok</span>(task) => {
- <span class="comment">// Collect Parquet column
indices from field ids
- </span><span class="kw">let </span><span
class="kw-2">mut </span>collector = CollectFieldIdVisitor {
- field_ids: HashSet::default(),
- };
- <span class="kw">if let </span><span
class="prelude-val">Some</span>(predicates) = task.predicate() {
- visit(<span class="kw-2">&mut
</span>collector, predicates)<span class="question-mark">?</span>;
+ <span class="kw">let </span>batch_size = <span
class="self">self</span>.batch_size;
+ <span class="kw">let </span>concurrency_limit_data_files = <span
class="self">self</span>.concurrency_limit_data_files;
+
+ <span class="kw">let </span>(tx, rx) =
channel(concurrency_limit_data_files);
+ <span class="kw">let </span><span class="kw-2">mut
</span>channel_for_error = tx.clone();
+
+ spawn(<span class="kw">async move </span>{
+ <span class="kw">let </span>result = tasks
+ .map(|task| <span class="prelude-val">Ok</span>((task,
file_io.clone(), tx.clone())))
+ .try_for_each_concurrent(
+ concurrency_limit_data_files,
+ |(file_scan_task, file_io, tx)| <span class="kw">async
move </span>{
+ <span class="kw">match </span>file_scan_task {
+ <span class="prelude-val">Ok</span>(task) => {
+ <span class="kw">let </span>file_path =
task.data_file_path().to_string();
+
+ spawn(<span class="kw">async move </span>{
+ <span
class="self">Self</span>::process_file_scan_task(task, batch_size, file_io, tx)
+ .<span class="kw">await
+ </span>})
+ .<span class="kw">await
+ </span>.map_err(|e| e.with_context(<span
class="string">"file_path"</span>, file_path))
+ }
+ <span class="prelude-val">Err</span>(err) =>
<span class="prelude-val">Err</span>(err),
}
+ },
+ )
+ .<span class="kw">await</span>;
- <span class="kw">let </span>parquet_file = file_io
- .new_input(task.data_file_path())<span
class="question-mark">?</span>;
+ <span class="kw">if let </span><span
class="prelude-val">Err</span>(error) = result {
+ <span class="kw">let _ </span>= channel_for_error.send(<span
class="prelude-val">Err</span>(error)).<span class="kw">await</span>;
+ }
+ });
- <span class="kw">let </span>(parquet_metadata,
parquet_reader) = <span class="macro">try_join!</span>(parquet_file.metadata(),
parquet_file.reader())<span class="question-mark">?</span>;
- <span class="kw">let </span>arrow_file_reader =
ArrowFileReader::new(parquet_metadata, parquet_reader);
+ <span class="kw">return </span><span
class="prelude-val">Ok</span>(rx.boxed());
+ }
- <span class="kw">let </span><span class="kw-2">mut
</span>batch_stream_builder =
ParquetRecordBatchStreamBuilder::new(arrow_file_reader)
- .<span class="kw">await</span><span
class="question-mark">?</span>;
+ <span class="kw">async fn </span>process_file_scan_task(
+ task: FileScanTask,
+ batch_size: <span class="prelude-ty">Option</span><usize>,
+ file_io: FileIO,
+ <span class="kw-2">mut </span>tx: Sender<<span
class="prelude-ty">Result</span><RecordBatch>>,
+ ) -> <span class="prelude-ty">Result</span><()> {
+ <span class="comment">// Collect Parquet column indices from field ids
+ </span><span class="kw">let </span><span class="kw-2">mut
</span>collector = CollectFieldIdVisitor {
+ field_ids: HashSet::default(),
+ };
- <span class="kw">let </span>parquet_schema =
batch_stream_builder.parquet_schema();
- <span class="kw">let </span>arrow_schema =
batch_stream_builder.schema();
- <span class="kw">let </span>projection_mask = <span
class="self">self</span>.get_arrow_projection_mask(task.project_field_ids(),task.schema(),parquet_schema,
arrow_schema)<span class="question-mark">?</span>;
- batch_stream_builder =
batch_stream_builder.with_projection(projection_mask);
+ <span class="kw">if let </span><span
class="prelude-val">Some</span>(predicates) = task.predicate() {
+ visit(<span class="kw-2">&mut </span>collector,
predicates)<span class="question-mark">?</span>;
+ }
- <span class="kw">let </span>parquet_schema =
batch_stream_builder.parquet_schema();
- <span class="kw">let </span>row_filter = <span
class="self">self</span>.get_row_filter(task.predicate(),parquet_schema, <span
class="kw-2">&</span>collector)<span class="question-mark">?</span>;
+ <span class="kw">let </span>parquet_file =
file_io.new_input(task.data_file_path())<span class="question-mark">?</span>;
- <span class="kw">if let </span><span
class="prelude-val">Some</span>(row_filter) = row_filter {
- batch_stream_builder =
batch_stream_builder.with_row_filter(row_filter);
- }
+ <span class="kw">let </span>(parquet_metadata, parquet_reader) =
+ <span class="macro">try_join!</span>(parquet_file.metadata(),
parquet_file.reader())<span class="question-mark">?</span>;
+ <span class="kw">let </span>arrow_file_reader =
ArrowFileReader::new(parquet_metadata, parquet_reader);
- <span class="kw">if let </span><span
class="prelude-val">Some</span>(batch_size) = <span
class="self">self</span>.batch_size {
- batch_stream_builder =
batch_stream_builder.with_batch_size(batch_size);
- }
+ <span class="kw">let </span><span class="kw-2">mut
</span>batch_stream_builder =
+ ParquetRecordBatchStreamBuilder::new(arrow_file_reader).<span
class="kw">await</span><span class="question-mark">?</span>;
- <span class="kw">let </span><span class="kw-2">mut
</span>batch_stream = batch_stream_builder.build()<span
class="question-mark">?</span>;
+ <span class="kw">let </span>parquet_schema =
batch_stream_builder.parquet_schema();
+ <span class="kw">let </span>arrow_schema =
batch_stream_builder.schema();
+ <span class="kw">let </span>projection_mask = <span
class="self">Self</span>::get_arrow_projection_mask(
+ task.project_field_ids(),
+ task.schema(),
+ parquet_schema,
+ arrow_schema,
+ )<span class="question-mark">?</span>;
+ batch_stream_builder =
batch_stream_builder.with_projection(projection_mask);
- <span class="kw">while let </span><span
class="prelude-val">Some</span>(batch) = batch_stream.next().<span
class="kw">await </span>{
- <span class="kw">yield </span>batch<span
class="question-mark">?</span>;
- }
- }
- <span class="prelude-val">Err</span>(e) => {
- <span class="prelude-val">Err</span>(e)<span
class="question-mark">?
- </span>}
- }
- }
+ <span class="kw">let </span>parquet_schema =
batch_stream_builder.parquet_schema();
+ <span class="kw">let </span>row_filter = <span
class="self">Self</span>::get_row_filter(task.predicate(), parquet_schema,
<span class="kw-2">&</span>collector)<span class="question-mark">?</span>;
+
+ <span class="kw">if let </span><span
class="prelude-val">Some</span>(row_filter) = row_filter {
+ batch_stream_builder =
batch_stream_builder.with_row_filter(row_filter);
}
- .boxed())
+
+ <span class="kw">if let </span><span
class="prelude-val">Some</span>(batch_size) = batch_size {
+ batch_stream_builder =
batch_stream_builder.with_batch_size(batch_size);
+ }
+
+ <span class="kw">let </span><span class="kw-2">mut </span>batch_stream
= batch_stream_builder.build()<span class="question-mark">?</span>;
+
+ <span class="kw">while let </span><span
class="prelude-val">Some</span>(batch) = batch_stream.try_next().<span
class="kw">await</span><span class="question-mark">? </span>{
+ tx.send(<span class="prelude-val">Ok</span>(batch)).<span
class="kw">await</span><span class="question-mark">?
+ </span>}
+
+ <span class="prelude-val">Ok</span>(())
}
<span class="kw">fn </span>get_arrow_projection_mask(
- <span class="kw-2">&</span><span class="self">self</span>,
field_ids: <span class="kw-2">&</span>[i32],
iceberg_schema_of_task: <span class="kw-2">&</span>Schema,
parquet_schema: <span class="kw-2">&</span>SchemaDescriptor,
arrow_schema: <span class="kw-2">&</span>ArrowSchemaRef,
- ) -> <span class="kw">crate</span>::Result<ProjectionMask> {
+ ) -> <span class="prelude-ty">Result</span><ProjectionMask> {
<span class="kw">if </span>field_ids.is_empty() {
<span class="prelude-val">Ok</span>(ProjectionMask::all())
} <span class="kw">else </span>{
@@ -1167,7 +1272,6 @@
}
<span class="kw">fn </span>get_row_filter(
- <span class="kw-2">&</span><span class="self">self</span>,
predicates: <span class="prelude-ty">Option</span><<span
class="kw-2">&</span>BoundPredicate>,
parquet_schema: <span class="kw-2">&</span>SchemaDescriptor,
collector: <span class="kw-2">&</span>CollectFieldIdVisitor,
diff --git a/api/src/iceberg/lib.rs.html b/api/src/iceberg/lib.rs.html
index 54c9034..a0293ef 100644
--- a/api/src/iceberg/lib.rs.html
+++ b/api/src/iceberg/lib.rs.html
@@ -82,6 +82,7 @@
<a href="#82" id="82">82</a>
<a href="#83" id="83">83</a>
<a href="#84" id="84">84</a>
+<a href="#85" id="85">85</a>
</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
@@ -165,5 +166,6 @@
<span class="kw">mod </span>runtime;
<span class="kw">pub mod </span>arrow;
+<span class="kw">mod </span>utils;
<span class="kw">pub mod </span>writer;
</code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/api/src/iceberg/scan.rs.html b/api/src/iceberg/scan.rs.html
index 9c2f892..f5cac37 100644
--- a/api/src/iceberg/scan.rs.html
+++ b/api/src/iceberg/scan.rs.html
@@ -1574,6 +1574,20 @@
<a href="#1574" id="1574">1574</a>
<a href="#1575" id="1575">1575</a>
<a href="#1576" id="1576">1576</a>
+<a href="#1577" id="1577">1577</a>
+<a href="#1578" id="1578">1578</a>
+<a href="#1579" id="1579">1579</a>
+<a href="#1580" id="1580">1580</a>
+<a href="#1581" id="1581">1581</a>
+<a href="#1582" id="1582">1582</a>
+<a href="#1583" id="1583">1583</a>
+<a href="#1584" id="1584">1584</a>
+<a href="#1585" id="1585">1585</a>
+<a href="#1586" id="1586">1586</a>
+<a href="#1587" id="1587">1587</a>
+<a href="#1588" id="1588">1588</a>
+<a href="#1589" id="1589">1589</a>
+<a href="#1590" id="1590">1590</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
@@ -1615,6 +1629,7 @@
SchemaRef, SnapshotRef, TableMetadataRef,
};
<span class="kw">use </span><span class="kw">crate</span>::table::Table;
+<span class="kw">use </span><span
class="kw">crate</span>::utils::available_parallelism;
<span class="kw">use crate</span>::{Error, ErrorKind, <span
class="prelude-ty">Result</span>};
<span class="doccomment">/// A stream of [`FileScanTask`].
@@ -1631,15 +1646,14 @@
batch_size: <span class="prelude-ty">Option</span><usize>,
case_sensitive: bool,
filter: <span class="prelude-ty">Option</span><Predicate>,
- concurrency_limit_manifest_files: usize,
+ concurrency_limit_data_files: usize,
concurrency_limit_manifest_entries: usize,
+ concurrency_limit_manifest_files: usize,
}
<span class="kw">impl</span><<span class="lifetime">'a</span>>
TableScanBuilder<<span class="lifetime">'a</span>> {
<span class="kw">pub</span>(<span class="kw">crate</span>) <span
class="kw">fn </span>new(table: <span class="kw-2">&</span><span
class="lifetime">'a </span>Table) -> <span class="self">Self </span>{
- <span class="kw">let </span>num_cpus =
std::thread::available_parallelism()
- .expect(<span class="string">"failed to get number of CPUs"</span>)
- .get();
+ <span class="kw">let </span>num_cpus = available_parallelism().get();
<span class="self">Self </span>{
table,
@@ -1648,8 +1662,9 @@
batch_size: <span class="prelude-val">None</span>,
case_sensitive: <span class="bool-val">true</span>,
filter: <span class="prelude-val">None</span>,
- concurrency_limit_manifest_files: num_cpus,
+ concurrency_limit_data_files: num_cpus,
concurrency_limit_manifest_entries: num_cpus,
+ concurrency_limit_manifest_files: num_cpus,
}
}
@@ -1700,12 +1715,13 @@
</span><span class="kw">pub fn </span>with_concurrency_limit(<span
class="kw-2">mut </span><span class="self">self</span>, limit: usize) ->
<span class="self">Self </span>{
<span class="self">self</span>.concurrency_limit_manifest_files =
limit;
<span class="self">self</span>.concurrency_limit_manifest_entries =
limit;
+ <span class="self">self</span>.concurrency_limit_data_files = limit;
<span class="self">self
</span>}
- <span class="doccomment">/// Sets the manifest file concurrency limit for
this scan
- </span><span class="kw">pub fn
</span>with_manifest_file_concurrency_limit(<span class="kw-2">mut </span><span
class="self">self</span>, limit: usize) -> <span class="self">Self </span>{
- <span class="self">self</span>.concurrency_limit_manifest_files =
limit;
+ <span class="doccomment">/// Sets the data file concurrency limit for this
scan
+ </span><span class="kw">pub fn
</span>with_data_file_concurrency_limit(<span class="kw-2">mut </span><span
class="self">self</span>, limit: usize) -> <span class="self">Self </span>{
+ <span class="self">self</span>.concurrency_limit_data_files = limit;
<span class="self">self
</span>}
@@ -1715,6 +1731,12 @@
<span class="self">self
</span>}
+ <span class="doccomment">/// Sets the manifest file concurrency limit for
this scan
+ </span><span class="kw">pub fn
</span>with_manifest_file_concurrency_limit(<span class="kw-2">mut </span><span
class="self">self</span>, limit: usize) -> <span class="self">Self </span>{
+ <span class="self">self</span>.concurrency_limit_manifest_files =
limit;
+ <span class="self">self
+ </span>}
+
<span class="doccomment">/// Build the table scan.
</span><span class="kw">pub fn </span>build(<span
class="self">self</span>) -> <span
class="prelude-ty">Result</span><TableScan> {
<span class="kw">let </span>snapshot = <span class="kw">match
</span><span class="self">self</span>.snapshot_id {
@@ -1820,10 +1842,11 @@
<span class="prelude-val">Ok</span>(TableScan {
batch_size: <span class="self">self</span>.batch_size,
column_names: <span class="self">self</span>.column_names,
- concurrency_limit_manifest_files: <span
class="self">self</span>.concurrency_limit_manifest_files,
file_io: <span class="self">self</span>.table.file_io().clone(),
plan_context,
+ concurrency_limit_data_files: <span
class="self">self</span>.concurrency_limit_data_files,
concurrency_limit_manifest_entries: <span
class="self">self</span>.concurrency_limit_manifest_entries,
+ concurrency_limit_manifest_files: <span
class="self">self</span>.concurrency_limit_manifest_files,
})
}
}
@@ -1842,6 +1865,10 @@
<span class="doccomment">/// The maximum number of [`ManifestEntry`]s that
will
/// be processed in parallel
</span>concurrency_limit_manifest_entries: usize,
+
+ <span class="doccomment">/// The maximum number of [`ManifestEntry`]s that
will
+ /// be processed in parallel
+ </span>concurrency_limit_data_files: usize,
}
<span class="doccomment">/// PlanContext wraps a [`SnapshotRef`] alongside all
the other
@@ -1926,7 +1953,8 @@
<span class="doccomment">/// Returns an [`ArrowRecordBatchStream`].
</span><span class="kw">pub async fn </span>to_arrow(<span
class="kw-2">&</span><span class="self">self</span>) -> <span
class="prelude-ty">Result</span><ArrowRecordBatchStream> {
- <span class="kw">let </span><span class="kw-2">mut
</span>arrow_reader_builder = ArrowReaderBuilder::new(<span
class="self">self</span>.file_io.clone());
+ <span class="kw">let </span><span class="kw-2">mut
</span>arrow_reader_builder = ArrowReaderBuilder::new(<span
class="self">self</span>.file_io.clone())
+ .with_data_file_concurrency_limit(<span
class="self">self</span>.concurrency_limit_data_files);
<span class="kw">if let </span><span
class="prelude-val">Some</span>(batch_size) = <span
class="self">self</span>.batch_size {
arrow_reader_builder =
arrow_reader_builder.with_batch_size(batch_size);
diff --git a/api/src/iceberg/utils.rs.html b/api/src/iceberg/utils.rs.html
new file mode 100644
index 0000000..4dfec98
--- /dev/null
+++ b/api/src/iceberg/utils.rs.html
@@ -0,0 +1,85 @@
+<!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="Source of
the Rust file `crates/iceberg/src/utils.rs`."><title>utils.rs -
source</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a
[...]
+<a href="#2" id="2">2</a>
+<a href="#3" id="3">3</a>
+<a href="#4" id="4">4</a>
+<a href="#5" id="5">5</a>
+<a href="#6" id="6">6</a>
+<a href="#7" id="7">7</a>
+<a href="#8" id="8">8</a>
+<a href="#9" id="9">9</a>
+<a href="#10" id="10">10</a>
+<a href="#11" id="11">11</a>
+<a href="#12" id="12">12</a>
+<a href="#13" id="13">13</a>
+<a href="#14" id="14">14</a>
+<a href="#15" id="15">15</a>
+<a href="#16" id="16">16</a>
+<a href="#17" id="17">17</a>
+<a href="#18" id="18">18</a>
+<a href="#19" id="19">19</a>
+<a href="#20" id="20">20</a>
+<a href="#21" id="21">21</a>
+<a href="#22" id="22">22</a>
+<a href="#23" id="23">23</a>
+<a href="#24" id="24">24</a>
+<a href="#25" id="25">25</a>
+<a href="#26" id="26">26</a>
+<a href="#27" id="27">27</a>
+<a href="#28" id="28">28</a>
+<a href="#29" id="29">29</a>
+<a href="#30" id="30">30</a>
+<a href="#31" id="31">31</a>
+<a href="#32" id="32">32</a>
+<a href="#33" id="33">33</a>
+<a href="#34" id="34">34</a>
+<a href="#35" id="35">35</a>
+<a href="#36" id="36">36</a>
+<a href="#37" id="37">37</a>
+<a href="#38" id="38">38</a>
+<a href="#39" id="39">39</a>
+<a href="#40" id="40">40</a>
+<a href="#41" id="41">41</a>
+<a href="#42" id="42">42</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
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+</span><span class="kw">use </span>std::num::NonZero;
+
+<span class="comment">// Use a default value of 1 as the safest option.
+// See
https://doc.rust-lang.org/std/thread/fn.available_parallelism.html#limitations
+// for more details.
+</span><span class="kw">const </span>DEFAULT_PARALLELISM: usize = <span
class="number">1</span>;
+
+<span class="doccomment">/// Uses [`std::thread::available_parallelism`] in
order to
+/// retrieve an estimate of the default amount of parallelism
+/// that should be used. Note that [`std::thread::available_parallelism`]
+/// returns a `Result` as it can fail, so here we use
+/// a default value instead.
+/// Note: we don't use a OnceCell or LazyCell here as there
+/// are circumstances where the level of available
+/// parallelism can change during the lifetime of an executing
+/// process, but this should not be called in a hot loop.
+</span><span class="kw">pub</span>(<span class="kw">crate</span>) <span
class="kw">fn </span>available_parallelism() -> NonZero<usize> {
+ std::thread::available_parallelism().unwrap_or_else(|_err| {
+ <span class="comment">// Failed to get the level of parallelism.
+ // TODO: log/trace when this fallback occurs.
+
+ // Using a default value.
+ </span>NonZero::new(DEFAULT_PARALLELISM).unwrap()
+ })
+}
+</code></pre></div></section></main></body></html>
\ No newline at end of file