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 854ec758 deploy: c3549836796f93aa3ad22276af788aa3d92533a1
854ec758 is described below

commit 854ec7580cc3858e319a3f301be517d44c8579da
Author: Xuanwo <[email protected]>
AuthorDate: Mon Sep 23 06:52:28 2024 +0000

    deploy: c3549836796f93aa3ad22276af788aa3d92533a1
---
 api/iceberg/expr/enum.Predicate.html             |  4 ++--
 api/iceberg/expr/struct.BoundReference.html      |  4 ++--
 api/iceberg/io/struct.FileIO.html                | 27 ++++++++++++++++--------
 api/iceberg/io/struct.FileIOBuilder.html         | 15 +++++++------
 api/iceberg/io/struct.FileMetadata.html          |  2 +-
 api/iceberg/io/struct.InputFile.html             | 14 ++++++------
 api/iceberg/io/struct.OutputFile.html            | 14 ++++++------
 api/iceberg/io/trait.FileRead.html               |  6 +++---
 api/iceberg/io/trait.FileWrite.html              | 10 ++++-----
 api/iceberg/spec/enum.ManifestContentType.html   |  2 +-
 api/iceberg/spec/enum.NullOrder.html             |  4 ++--
 api/iceberg/spec/enum.PrimitiveType.html         |  4 ++--
 api/iceberg/spec/enum.SortOrderBuilderError.html |  2 +-
 api/iceberg/spec/enum.Transform.html             |  4 ++--
 api/iceberg/spec/enum.Type.html                  |  4 ++--
 api/iceberg/spec/enum.ViewFormatVersion.html     |  4 ++--
 api/iceberg/spec/struct.NestedField.html         |  4 ++--
 api/iceberg/spec/struct.Schema.html              |  4 ++--
 api/iceberg/spec/struct.StructType.html          |  4 ++--
 api/iceberg/struct.Error.html                    |  2 +-
 api/search-index.js                              |  2 +-
 api/search.desc/iceberg/iceberg-desc-0-.js       |  2 +-
 api/src/iceberg/io/file_io.rs.html               | 26 ++++++++++++++++++++---
 api/src/iceberg/io/storage.rs.html               |  4 +++-
 24 files changed, 100 insertions(+), 68 deletions(-)

diff --git a/api/iceberg/expr/enum.Predicate.html 
b/api/iceberg/expr/enum.Predicate.html
index 7d69fd80..95ba266c 100644
--- a/api/iceberg/expr/enum.Predicate.html
+++ b/api/iceberg/expr/enum.Predicate.html
@@ -82,8 +82,8 @@ predicates.</p>
     &amp;self,
     schema: <a class="type" href="../spec/type.SchemaRef.html" title="type 
iceberg::spec::SchemaRef">SchemaRef</a>,
     case_sensitive: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a>,
-) -&gt; <a class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="enum" href="enum.BoundPredicate.html" 
title="enum 
iceberg::expr::BoundPredicate">BoundPredicate</a>&gt;</h4></section></summary><div
 class='docblock'>Bind an expression to a 
schema.</div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Clone-for-Predicate" 
class="impl"><a class="src rightside" href="../../src/iceberg/expr/predicate.r 
[...]
-    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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 [...]
+) -&gt; <a class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="enum" href="enum.BoundPredicate.html" 
title="enum 
iceberg::expr::BoundPredicate">BoundPredicate</a>&gt;</h4></section></summary><div
 class='docblock'>Bind an expression to a 
schema.</div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Clone-for-Predicate" 
class="impl"><a class="src rightside" href="../../src/iceberg/expr/predicate.r 
[...]
+    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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 [...]
 <p>This is different from <a href="enum.Predicate.html#method.negate" 
title="method 
iceberg::expr::Predicate::negate"><code>Predicate::negate()</code></a> since it 
doesn’t rewrite expression, but
 just adds a <code>NOT</code> operator.</p>
 <h5 id="example-4"><a class="doc-anchor" href="#example-4">§</a>Example</h5>
diff --git a/api/iceberg/expr/struct.BoundReference.html 
b/api/iceberg/expr/struct.BoundReference.html
index 97ee66f3..d739d829 100644
--- a/api/iceberg/expr/struct.BoundReference.html
+++ b/api/iceberg/expr/struct.BoundReference.html
@@ -6,8 +6,8 @@
 ) -&gt; 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>(&amp;self) -&gt; &amp;<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>(&amp;self) -&gt; 
&amp;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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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.210/serde/ser/trait.Serialize.html"; 
title="trait s [...]
     __S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/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.210/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/io/struct.FileIO.html 
b/api/iceberg/io/struct.FileIO.html
index 67a4eb10..591c1bda 100644
--- a/api/iceberg/io/struct.FileIO.html
+++ b/api/iceberg/io/struct.FileIO.html
@@ -1,16 +1,25 @@
-<!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="FileIO 
implementation, used to manipulate files in underlying storage."><title>FileIO 
in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd
 [...]
+<!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="FileIO 
implementation, used to manipulate files in underlying storage."><title>FileIO 
in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd
 [...]
 <h2 id="note"><a class="doc-anchor" href="#note">§</a>Note</h2>
 <p>All path passed to <code>FileIO</code> must be absolute path starting with 
scheme string used to construct <code>FileIO</code>.
 For example, if you construct <code>FileIO</code> with <code>s3a</code> 
scheme, then all path passed to <code>FileIO</code> must start with 
<code>s3a://</code>.</p>
-</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-FileIO" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#40-99">source</a><a 
href="#impl-FileIO" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.FileIO.html" title="struct iceberg::io::FileI [...]
-<p>If it’s a valid url, for example http://example.org, url scheme will be 
used.
-If it’s not a valid url, will try to detect if it’s a file path.</p>
+<p>Supported storages:</p>
+<div><table><thead><tr><th>Storage</th><th>Feature 
Flag</th><th>Schemes</th></tr></thead><tbody>
+<tr><td>Local file 
system</td><td><code>storage-fs</code></td><td><code>file</code></td></tr>
+<tr><td>Memory</td><td><code>storage-memory</code></td><td><code>memory</code></td></tr>
+<tr><td>S3</td><td><code>storage-s3</code></td><td><code>s3</code>, 
<code>s3a</code></td></tr>
+<tr><td>GCS</td><td><code>storage-gcs</code></td><td><code>gs</code></td></tr>
+</tbody></table>
+</div></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-FileIO" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#49-108">source</a><a 
href="#impl-FileIO" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.FileIO.html" title="struct iceberg::io [...]
+<ul>
+<li>If it’s a valid url, for example <code>s3://bucket/a</code>, url scheme 
will be used, and the rest of the url will be ignored.</li>
+<li>If it’s not a valid url, will try to detect if it’s a file path.</li>
+</ul>
 <p>Otherwise will return parsing error.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.delete" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#65-68">source</a><h4 
class="code-header">pub async fn <a href="#method.delete" 
class="fn">delete</a>(&amp;self, path: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html"; 
title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/n [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.is_exist" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#71-74">source</a><h4 
class="code-header">pub async fn <a href="#method.is_exist" 
class="fn">is_exist</a>(&amp;self, path: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html"; 
title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" 
href="https://doc.rust-lang [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.new_input" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#77-86">source</a><h4 
class="code-header">pub fn <a href="#method.new_input" 
class="fn">new_input</a>(&amp;self, path: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html"; 
title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.or [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.new_output" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#89-98">source</a><h4 
class="code-header">pub fn <a href="#method.new_output" 
class="fn">new_output</a>(&amp;self, path: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html"; 
title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" 
href="https://doc.rust-lang [...]
-</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-FileIO" class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#35">source</a><a 
href="#impl-Clone-for-FileIO" class="anchor">§</a><h3 class="code-header">impl 
<a class="tra [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.delete" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#74-77">source</a><h4 
class="code-header">pub async fn <a href="#method.delete" 
class="fn">delete</a>(&amp;self, path: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html"; 
title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/n [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.is_exist" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#80-83">source</a><h4 
class="code-header">pub async fn <a href="#method.is_exist" 
class="fn">is_exist</a>(&amp;self, path: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html"; 
title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" 
href="https://doc.rust-lang [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.new_input" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#86-95">source</a><h4 
class="code-header">pub fn <a href="#method.new_input" 
class="fn">new_input</a>(&amp;self, path: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html"; 
title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.or [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.new_output" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#98-107">source</a><h4 
class="code-header">pub fn <a href="#method.new_output" 
class="fn">new_output</a>(&amp;self, path: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html"; 
title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" 
href="https://doc.rust-lan [...]
+</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-FileIO" class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#44">source</a><a 
href="#impl-Clone-for-FileIO" class="anchor">§</a><h3 class="code-header">impl 
<a class="tra [...]
     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/io/struct.FileIOBuilder.html 
b/api/iceberg/io/struct.FileIOBuilder.html
index d540d3af..599ab640 100644
--- a/api/iceberg/io/struct.FileIOBuilder.html
+++ b/api/iceberg/io/struct.FileIOBuilder.html
@@ -1,13 +1,14 @@
-<!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 
for `FileIO`."><title>FileIOBuilder in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo
 [...]
-</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-FileIOBuilder" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#112-159">source</a><a 
href="#impl-FileIOBuilder" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.FileIOBuilder.html" title="st [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.new_fs_io" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#122-127">source</a><h4 
class="code-header">pub fn <a href="#method.new_fs_io" 
class="fn">new_fs_io</a>() -&gt; Self</h4></section></summary><div 
class="docblock"><p>Creates a new builder for local file io.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_prop" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#137-140">source</a><h4 
class="code-header">pub fn <a href="#method.with_prop" 
class="fn">with_prop</a>(self, key: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html"; 
title="trait alloc::string::ToString">ToString</a>, value: impl <a 
class="trait" href="https://doc.r [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_props" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#143-150">source</a><h4 
class="code-header">pub fn <a href="#method.with_props" 
class="fn">with_props</a>(
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Builder 
for `FileIO`."><title>FileIOBuilder in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.wo
 [...]
+</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-FileIOBuilder" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#121-169">source</a><a 
href="#impl-FileIOBuilder" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.FileIOBuilder.html" title="st [...]
+See <a href="struct.FileIO.html" title="struct 
iceberg::io::FileIO"><code>FileIO</code></a> for supported schemes.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.new_fs_io" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#132-137">source</a><h4 
class="code-header">pub fn <a href="#method.new_fs_io" 
class="fn">new_fs_io</a>() -&gt; Self</h4></section></summary><div 
class="docblock"><p>Creates a new builder for local file io.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_prop" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#147-150">source</a><h4 
class="code-header">pub fn <a href="#method.with_prop" 
class="fn">with_prop</a>(self, key: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html"; 
title="trait alloc::string::ToString">ToString</a>, value: impl <a 
class="trait" href="https://doc.r [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_props" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#153-160">source</a><h4 
class="code-header">pub fn <a href="#method.with_props" 
class="fn">with_props</a>(
     self,
     args: 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>&lt;Item = (impl <a 
class="trait" 
href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html"; 
title="trait alloc::string::ToString">ToString</a>, impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html"; 
title="trait alloc::string::ToString">ToSt [...]
 ) -&gt; Self</h4></section></summary><div class="docblock"><p>Add argument for 
operator.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.build" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#153-158">source</a><h4 
class="code-header">pub fn <a href="#method.build" class="fn">build</a>(self) 
-&gt; <a class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="struct" href="struct.FileIO.html" 
title="struct iceberg::io::FileIO">FileIO</a>&gt;</h4></section></summary><di 
[...]
-</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-FileIOBuilder" class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#102">source</a><a 
href="#impl-Debug-for-FileIOBuilder" class="anchor">§</a><h3 
class="code-header">imp [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.build" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#163-168">source</a><h4 
class="code-header">pub fn <a href="#method.build" class="fn">build</a>(self) 
-&gt; <a class="type" href="../type.Result.html" title="type 
iceberg::Result">Result</a>&lt;<a class="struct" href="struct.FileIO.html" 
title="struct iceberg::io::FileIO">FileIO</a>&gt;</h4></section></summary><di 
[...]
+</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-FileIOBuilder" class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#111">source</a><a 
href="#impl-Debug-for-FileIOBuilder" class="anchor">§</a><h3 
class="code-header">imp [...]
     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/io/struct.FileMetadata.html 
b/api/iceberg/io/struct.FileMetadata.html
index 696a8995..0d594b4c 100644
--- a/api/iceberg/io/struct.FileMetadata.html
+++ b/api/iceberg/io/struct.FileMetadata.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="The struct 
the represents the metadata of a file."><title>FileMetadata in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans
 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="The struct 
the represents the metadata of a file."><title>FileMetadata in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans
 [...]
     pub size: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html";>u64</a>,
 }</code></pre><details class="toggle top-doc" open><summary 
class="hideme"><span>Expand description</span></summary><div 
class="docblock"><p>The struct the represents the metadata of a file.</p>
 <p>TODO: we can add last modified time, content type, etc. in the future.</p>
diff --git a/api/iceberg/io/struct.InputFile.html 
b/api/iceberg/io/struct.InputFile.html
index ebdb4c3c..759c611a 100644
--- a/api/iceberg/io/struct.InputFile.html
+++ b/api/iceberg/io/struct.InputFile.html
@@ -1,12 +1,12 @@
-<!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="Input file 
is used for reading from files."><title>InputFile in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f
 [...]
-</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-InputFile" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#200-240">source</a><a 
href="#impl-InputFile" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.InputFile.html" title="struct iceberg [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.exists" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#207-212">source</a><h4 
class="code-header">pub async fn <a href="#method.exists" 
class="fn">exists</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a>&gt;</h4></se
 [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.metadata" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#215-221">source</a><h4 
class="code-header">pub async fn <a href="#method.metadata" 
class="fn">metadata</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="struct" href="struct.FileMetadata.html" title="struct 
iceberg::io::FileMetadata">FileMetada [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.read" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#226-232">source</a><h4 
class="code-header">pub async fn <a href="#method.read" 
class="fn">read</a>(&amp;self) -&gt; <a class="type" href="../type.Result.html" 
title="type 
iceberg::Result">Result</a>&lt;Bytes&gt;</h4></section></summary><div 
class="docblock"><p>Read and returns whole content of file.</p>
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Input file 
is used for reading from files."><title>InputFile in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f
 [...]
+</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-InputFile" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#210-250">source</a><a 
href="#impl-InputFile" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.InputFile.html" title="struct iceberg [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.exists" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#217-222">source</a><h4 
class="code-header">pub async fn <a href="#method.exists" 
class="fn">exists</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a>&gt;</h4></se
 [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.metadata" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#225-231">source</a><h4 
class="code-header">pub async fn <a href="#method.metadata" 
class="fn">metadata</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="struct" href="struct.FileMetadata.html" title="struct 
iceberg::io::FileMetadata">FileMetada [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.read" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#236-242">source</a><h4 
class="code-header">pub async fn <a href="#method.read" 
class="fn">read</a>(&amp;self) -&gt; <a class="type" href="../type.Result.html" 
title="type 
iceberg::Result">Result</a>&lt;Bytes&gt;</h4></section></summary><div 
class="docblock"><p>Read and returns whole content of file.</p>
 <p>For continues reading, use <a href="struct.InputFile.html#method.reader" 
title="method iceberg::io::InputFile::reader"><code>Self::reader</code></a> 
instead.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.reader" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#237-239">source</a><h4 
class="code-header">pub async fn <a href="#method.reader" 
class="fn">reader</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;impl <a 
class="trait" href="trait.FileRead.html" title="trait 
iceberg::io::FileRead">FileRead</a>&gt;</h4>< [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.reader" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#247-249">source</a><h4 
class="code-header">pub async fn <a href="#method.reader" 
class="fn">reader</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;impl <a 
class="trait" href="trait.FileRead.html" title="trait 
iceberg::io::FileRead">FileRead</a>&gt;</h4>< [...]
 <p>For one-time reading, use <a href="struct.InputFile.html#method.read" 
title="method iceberg::io::InputFile::read"><code>Self::read</code></a> 
instead.</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-InputFile" class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#191">source</a><a 
href="#impl-Debug-for-InputFile" class="anchor">§</a><h3 
class="code-header">impl <a cla [...]
+</div></details></div></details></div><h2 id="trait-implementations" 
class="section-header">Trait Implementations<a href="#trait-implementations" 
class="anchor">§</a></h2><div id="trait-implementations-list"><details 
class="toggle implementors-toggle" open><summary><section 
id="impl-Debug-for-InputFile" class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#201">source</a><a 
href="#impl-Debug-for-InputFile" class="anchor">§</a><h3 
class="code-header">impl <a cla [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" 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/io/struct.OutputFile.html 
b/api/iceberg/io/struct.OutputFile.html
index db097c57..b5444562 100644
--- a/api/iceberg/io/struct.OutputFile.html
+++ b/api/iceberg/io/struct.OutputFile.html
@@ -1,15 +1,15 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Output 
file is used for writing to files.."><title>OutputFile in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8
 [...]
-</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-OutputFile" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#282-327">source</a><a 
href="#impl-OutputFile" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.OutputFile.html" title="struct iceb [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.exists" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#289-294">source</a><h4 
class="code-header">pub async fn <a href="#method.exists" 
class="fn">exists</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a>&gt;</h4></se
 [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.to_input_file" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#297-303">source</a><h4 
class="code-header">pub fn <a href="#method.to_input_file" 
class="fn">to_input_file</a>(self) -&gt; <a class="struct" 
href="struct.InputFile.html" title="struct 
iceberg::io::InputFile">InputFile</a></h4></section></summary><div 
class="docblock"><p>Converts into <a href="struct.Input [...]
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.write" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#311-315">source</a><h4 
class="code-header">pub async fn <a href="#method.write" 
class="fn">write</a>(&amp;self, bs: Bytes) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.unit.html";>()</a>&gt;</h 
[...]
+<!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="Output 
file is used for writing to files.."><title>OutputFile in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8
 [...]
+</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-OutputFile" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#292-337">source</a><a 
href="#impl-OutputFile" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.OutputFile.html" title="struct iceb [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.exists" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#299-304">source</a><h4 
class="code-header">pub async fn <a href="#method.exists" 
class="fn">exists</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a>&gt;</h4></se
 [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.to_input_file" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#307-313">source</a><h4 
class="code-header">pub fn <a href="#method.to_input_file" 
class="fn">to_input_file</a>(self) -&gt; <a class="struct" 
href="struct.InputFile.html" title="struct 
iceberg::io::InputFile">InputFile</a></h4></section></summary><div 
class="docblock"><p>Converts into <a href="struct.Input [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.write" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#321-325">source</a><h4 
class="code-header">pub async fn <a href="#method.write" 
class="fn">write</a>(&amp;self, bs: Bytes) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.unit.html";>()</a>&gt;</h 
[...]
 <h5 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h5>
 <p>Calling <code>write</code> will overwrite the file if it exists.
 For continues writing, use <a href="struct.OutputFile.html#method.writer" 
title="method 
iceberg::io::OutputFile::writer"><code>Self::writer</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.writer" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#322-326">source</a><h4 
class="code-header">pub async fn <a href="#method.writer" 
class="fn">writer</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc: [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.writer" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#332-336">source</a><h4 
class="code-header">pub async fn <a href="#method.writer" 
class="fn">writer</a>(&amp;self) -&gt; <a class="type" 
href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a 
class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc: [...]
 <h5 id="notes-1"><a class="doc-anchor" href="#notes-1">§</a>Notes</h5>
 <p>For one-time writing, use <a href="struct.OutputFile.html#method.write" 
title="method iceberg::io::OutputFile::write"><code>Self::write</code></a> 
instead.</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-OutputFile" class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#273">source</a><a 
href="#impl-Debug-for-OutputFile" class="anchor">§</a><h3 
class="code-header">impl <a c [...]
+</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-OutputFile" class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#283">source</a><a 
href="#impl-Debug-for-OutputFile" class="anchor">§</a><h3 
class="code-header">impl <a c [...]
     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/io/trait.FileRead.html 
b/api/iceberg/io/trait.FileRead.html
index 23d8e164..960a3c8a 100644
--- a/api/iceberg/io/trait.FileRead.html
+++ b/api/iceberg/io/trait.FileRead.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="Trait for 
reading file."><title>FileRead in iceberg::io - 
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
 [...]
+<!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="Trait for 
reading file."><title>FileRead in iceberg::io - 
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
 [...]
     // Required method
     fn <a href="#tymethod.read" class="fn">read</a>&lt;'life0, 
'async_trait&gt;(
         &amp;'life0 self,
@@ -10,14 +10,14 @@
 <h2 id="todo"><a class="doc-anchor" href="#todo">§</a>TODO</h2>
 <p>It’s possible for us to remove the async_trait, but we need to figure
 out how to handle the object safety.</p>
-</div></details><h2 id="required-methods" class="section-header">Required 
Methods<a href="#required-methods" class="anchor">§</a></h2><div 
class="methods"><details class="toggle method-toggle" open><summary><section 
id="tymethod.read" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#180">source</a><h4 
class="code-header">fn <a href="#tymethod.read" class="fn">read</a>&lt;'life0, 
'async_trait&gt;(
+</div></details><h2 id="required-methods" class="section-header">Required 
Methods<a href="#required-methods" class="anchor">§</a></h2><div 
class="methods"><details class="toggle method-toggle" open><summary><section 
id="tymethod.read" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#190">source</a><h4 
class="code-header">fn <a href="#tymethod.read" class="fn">read</a>&lt;'life0, 
'async_trait&gt;(
     &amp;'life0 self,
     range: <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html"; 
title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html";>u64</a>&gt;,
 ) -&gt; <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html"; title="struct 
core::pin::Pin">Pin</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html"; 
title="trait core::future::future::Future">Future</a>&lt;Output = <a 
class="type" href="../type.Result.html" title="type iceberg: [...]
     Self: 'async_trait,
     'life0: 'async_trait,</div></h4></section></summary><div 
class="docblock"><p>Read file content with given range.</p>
 <p>TODO: we can support reading non-contiguous bytes in the future.</p>
-</div></details></div><h2 id="foreign-impls" 
class="section-header">Implementations on Foreign Types<a href="#foreign-impls" 
class="anchor">§</a></h2><details class="toggle 
implementors-toggle"><summary><section id="impl-FileRead-for-Reader" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#184-188">source</a><a 
href="#impl-FileRead-for-Reader" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href="trait.FileRead.html" 
title="trait iceberg: [...]
+</div></details></div><h2 id="foreign-impls" 
class="section-header">Implementations on Foreign Types<a href="#foreign-impls" 
class="anchor">§</a></h2><details class="toggle 
implementors-toggle"><summary><section id="impl-FileRead-for-Reader" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#194-198">source</a><a 
href="#impl-FileRead-for-Reader" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href="trait.FileRead.html" 
title="trait iceberg: [...]
     &amp;'life0 self,
     range: <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html"; 
title="struct core::ops::range::Range">Range</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.u64.html";>u64</a>&gt;,
 ) -&gt; <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html"; title="struct 
core::pin::Pin">Pin</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html"; 
title="trait core::future::future::Future">Future</a>&lt;Output = <a 
class="type" href="../type.Result.html" title="type iceberg: [...]
diff --git a/api/iceberg/io/trait.FileWrite.html 
b/api/iceberg/io/trait.FileWrite.html
index 7e5b5507..55bc8afe 100644
--- a/api/iceberg/io/trait.FileWrite.html
+++ b/api/iceberg/io/trait.FileWrite.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="Trait for 
writing file."><title>FileWrite in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff
 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Trait for 
writing file."><title>FileWrite in iceberg::io - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff
 [...]
     // Required methods
     fn <a href="#tymethod.write" class="fn">write</a>&lt;'life0, 
'async_trait&gt;(
         &amp;'life0 mut self,
@@ -15,25 +15,25 @@
 <h2 id="todo"><a class="doc-anchor" href="#todo">§</a>TODO</h2>
 <p>It’s possible for us to remove the async_trait, but we need to figure
 out how to handle the object safety.</p>
-</div></details><h2 id="required-methods" class="section-header">Required 
Methods<a href="#required-methods" class="anchor">§</a></h2><div 
class="methods"><details class="toggle method-toggle" open><summary><section 
id="tymethod.write" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#253">source</a><h4 
class="code-header">fn <a href="#tymethod.write" 
class="fn">write</a>&lt;'life0, 'async_trait&gt;(
+</div></details><h2 id="required-methods" class="section-header">Required 
Methods<a href="#required-methods" class="anchor">§</a></h2><div 
class="methods"><details class="toggle method-toggle" open><summary><section 
id="tymethod.write" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#263">source</a><h4 
class="code-header">fn <a href="#tymethod.write" 
class="fn">write</a>&lt;'life0, 'async_trait&gt;(
     &amp;'life0 mut self,
     bs: Bytes,
 ) -&gt; <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html"; title="struct 
core::pin::Pin">Pin</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html"; 
title="trait core::future::future::Future">Future</a>&lt;Output = <a 
class="type" href="../type.Result.html" title="type iceberg: [...]
     Self: 'async_trait,
     'life0: 'async_trait,</div></h4></section></summary><div 
class="docblock"><p>Write bytes to file.</p>
 <p>TODO: we can support writing non-contiguous bytes in the future.</p>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.close" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#258">source</a><h4 
class="code-header">fn <a href="#tymethod.close" 
class="fn">close</a>&lt;'life0, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section 
id="tymethod.close" class="method"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#268">source</a><h4 
class="code-header">fn <a href="#tymethod.close" 
class="fn">close</a>&lt;'life0, 'async_trait&gt;(
     &amp;'life0 mut self,
 ) -&gt; <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html"; title="struct 
core::pin::Pin">Pin</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html"; 
title="trait core::future::future::Future">Future</a>&lt;Output = <a 
class="type" href="../type.Result.html" title="type iceberg: [...]
     Self: 'async_trait,
     'life0: 'async_trait,</div></h4></section></summary><div 
class="docblock"><p>Close file.</p>
 <p>Calling close on closed file will generate an error.</p>
-</div></details></div><h2 id="foreign-impls" 
class="section-header">Implementations on Foreign Types<a href="#foreign-impls" 
class="anchor">§</a></h2><details class="toggle 
implementors-toggle"><summary><section id="impl-FileWrite-for-Writer" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#262-270">source</a><a 
href="#impl-FileWrite-for-Writer" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href="trait.FileWrite.html" 
title="trait icebe [...]
+</div></details></div><h2 id="foreign-impls" 
class="section-header">Implementations on Foreign Types<a href="#foreign-impls" 
class="anchor">§</a></h2><details class="toggle 
implementors-toggle"><summary><section id="impl-FileWrite-for-Writer" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#272-280">source</a><a 
href="#impl-FileWrite-for-Writer" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href="trait.FileWrite.html" 
title="trait icebe [...]
     &amp;'life0 mut self,
     bs: Bytes,
 ) -&gt; <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html"; title="struct 
core::pin::Pin">Pin</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html"; 
title="trait core::future::future::Future">Future</a>&lt;Output = <a 
class="type" href="../type.Result.html" title="type iceberg: [...]
     Self: 'async_trait,
-    'life0: 'async_trait,</div></h4></section><section id="method.close" 
class="method trait-impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#267-269">source</a><a 
href="#method.close" class="anchor">§</a><h4 class="code-header">fn <a 
href="#tymethod.close" class="fn">close</a>&lt;'life0, 'async_trait&gt;(
+    'life0: 'async_trait,</div></h4></section><section id="method.close" 
class="method trait-impl"><a class="src rightside" 
href="../../src/iceberg/io/file_io.rs.html#277-279">source</a><a 
href="#method.close" class="anchor">§</a><h4 class="code-header">fn <a 
href="#tymethod.close" class="fn">close</a>&lt;'life0, 'async_trait&gt;(
     &amp;'life0 mut self,
 ) -&gt; <a class="struct" 
href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html"; title="struct 
core::pin::Pin">Pin</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"; 
title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html"; 
title="trait core::future::future::Future">Future</a>&lt;Output = <a 
class="type" href="../type.Result.html" title="type iceberg: [...]
     Self: 'async_trait,
diff --git a/api/iceberg/spec/enum.ManifestContentType.html 
b/api/iceberg/spec/enum.ManifestContentType.html
index 78fde000..506d6a39 100644
--- a/api/iceberg/spec/enum.ManifestContentType.html
+++ b/api/iceberg/spec/enum.ManifestContentType.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>The type of files tracked by the manifest, either data or 
delete files; Data(0) for all v1 manifests</p>
 </div></details><h2 id="variants" class="variants section-header">Variants<a 
href="#variants" class="anchor">§</a></h2><div class="variants"><section 
id="variant.Data" class="variant"><a href="#variant.Data" 
class="anchor">§</a><h3 class="code-header">Data = 0</h3></section><div 
class="docblock"><p>The manifest content is data.</p>
 </div><section id="variant.Deletes" class="variant"><a href="#variant.Deletes" 
class="anchor">§</a><h3 class="code-header">Deletes = 1</h3></section><div 
class="docblock"><p>The manifest content is deletes.</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-ManifestContentType" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest_list.rs.html#584">source</a><a 
href="#impl-Clone-for-ManifestContentType" class="anchor">§</a><h3 
class="code-header">impl <a c [...]
+</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-ManifestContentType" class="impl"><a 
class="src rightside" 
href="../../src/iceberg/spec/manifest_list.rs.html#584">source</a><a 
href="#impl-Clone-for-ManifestContentType" class="anchor">§</a><h3 
class="code-header">impl <a c [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" 
open><summary><section id="method.ne" class="method trait-impl"><span 
class="rightside"><span class="since" title="Stable since Rust version 
1.0.0">1.0.0</span> · <a class="src" 
href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#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-TryFrom%3Ci32%3E-for-ManifestContentType" class="impl"><a class="src 
rightside" 
href="../../src/iceberg/spec/manifest_list.rs.html#616-632">source</a><a 
href="#impl-TryFrom%3Ci32%3E-for-ManifestContentType" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/ [...]
     T: 'static + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.type_id" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#141";>source</a><a 
href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href 
[...]
diff --git a/api/iceberg/spec/enum.NullOrder.html 
b/api/iceberg/spec/enum.NullOrder.html
index e43f63f1..302cda17 100644
--- a/api/iceberg/spec/enum.NullOrder.html
+++ b/api/iceberg/spec/enum.NullOrder.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>Describes the order of null values when sorted.</p>
 </div></details><h2 id="variants" class="variants section-header">Variants<a 
href="#variants" class="anchor">§</a></h2><div class="variants"><section 
id="variant.First" class="variant"><a href="#variant.First" 
class="anchor">§</a><h3 class="code-header">First</h3></section><div 
class="docblock"><p>Nulls are stored first</p>
 </div><section id="variant.Last" class="variant"><a href="#variant.Last" 
class="anchor">§</a><h3 class="code-header">Last</h3></section><div 
class="docblock"><p>Nulls are stored last</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-NullOrder" class="impl"><a class="src 
rightside" href="../../src/iceberg/spec/sort.rs.html#55">source</a><a 
href="#impl-Clone-for-NullOrder" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href="https://doc [...]
-    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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-NullOrder" class="impl"><a class="src 
rightside" href="../../src/iceberg/spec/sort.rs.html#55">source</a><a 
href="#impl-Clone-for-NullOrder" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" href="https://doc [...]
+    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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-NullOrder" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/sort.rs.html#55">source</a><a 
href="#impl-Serialize-for-NullOrder" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html"; 
title="trait serde::ser:: [...]
     __S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/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.210/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><section id="impl-Copy-for-NullOrder" 
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
diff --git a/api/iceberg/spec/enum.PrimitiveType.html 
b/api/iceberg/spec/enum.PrimitiveType.html
index bb03ba07..10e1d525 100644
--- a/api/iceberg/spec/enum.PrimitiveType.html
+++ b/api/iceberg/spec/enum.PrimitiveType.html
@@ -45,8 +45,8 @@
     __deserializer: __D,
 ) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"; 
title="enum core::result::Result">Result</a>&lt;<a class="enum" 
href="enum.PrimitiveType.html" title="enum 
iceberg::spec::PrimitiveType">PrimitiveType</a>, __D::<a class="associatedtype" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html#associatedtype.Error";
 title="type serde::de::Deserializer::Error">Error</a>&gt;<div 
class="where">where
     __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></div></details><details
 class="toggle implementors-toggle" open><summary><section 
id="impl-PrimitiveType-2" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#242-265">source</a><a 
href="#impl-PrimitiveType-2" class="anchor">§</a><h3 class="code-header">impl 
<a class="enum" [...]
-</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-PrimitiveType" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#200">source</a><a 
href="#impl-Clone-for-PrimitiveType" class="anchor">§</a><h3 
class="code-header" [...]
-    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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-PrimitiveType" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#200">source</a><a 
href="#impl-Clone-for-PrimitiveType" class="anchor">§</a><h3 
class="code-header" [...]
+    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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 [...]
     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/enum.SortOrderBuilderError.html 
b/api/iceberg/spec/enum.SortOrderBuilderError.html
index 65d194bb..0ca83947 100644
--- a/api/iceberg/spec/enum.SortOrderBuilderError.html
+++ b/api/iceberg/spec/enum.SortOrderBuilderError.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 SortOrderBuilder</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-SortOrderBuilderError" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/sort.rs.html#99">source</a><a 
href="#impl-Debug-for-SortOrderBuilderError" class="anchor">§</a><h3 
class="code-header">impl <a 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-SortOrderBuilderError" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/sort.rs.html#99">source</a><a 
href="#impl-Debug-for-SortOrderBuilderError" class="anchor">§</a><h3 
class="code-header">impl <a 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>(&amp;self) -&gt; &amp;(dyn <a class="trait" 
href="https://doc [...]
 to benefit from Rust’s automatic dereferencing of method
diff --git a/api/iceberg/spec/enum.Transform.html 
b/api/iceberg/spec/enum.Transform.html
index 7a2cd218..eaba5058 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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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#677-682">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.210/serde/ser/trait.Serialize.html"; 
title="trait se [...]
     S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/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.210/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 e71231f5..10435d45 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>) -&gt; 
<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>(&amp;self) -&gt; <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a></h4></section></summary><div
 class="docblock"><p>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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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#267-273">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.210/serde/ser/trait.Serialize.html"; 
title="trait serde::ser:: [...]
     S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/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.210/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.ViewFormatVersion.html 
b/api/iceberg/spec/enum.ViewFormatVersion.html
index 4d8658bb..1b301707 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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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.NestedField.html 
b/api/iceberg/spec/struct.NestedField.html
index f91ae52a..adf19fb1 100644
--- a/api/iceberg/spec/struct.NestedField.html
+++ b/api/iceberg/spec/struct.NestedField.html
@@ -30,8 +30,8 @@ Fields may have an optional comment or doc string. Fields can 
have default value
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_doc" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#655-658">source</a><h4 
class="code-header">pub fn <a href="#method.with_doc" 
class="fn">with_doc</a>(self, doc: impl <a class="trait" 
href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html"; 
title="trait alloc::string::ToString">ToString</a>) -&gt; 
Self</h4></section></summary><div class=" [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_initial_default" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#661-664">source</a><h4 
class="code-header">pub fn <a href="#method.with_initial_default" 
class="fn">with_initial_default</a>(self, value: <a class="enum" 
href="enum.Literal.html" title="enum iceberg::spec::Literal">Literal</a>) -&gt; 
Self</h4></section></summary><div class="docblock"><p>Set the [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.with_write_default" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#667-670">source</a><h4 
class="code-header">pub fn <a href="#method.with_write_default" 
class="fn">with_write_default</a>(self, value: <a class="enum" 
href="enum.Literal.html" title="enum iceberg::spec::Literal">Literal</a>) -&gt; 
Self</h4></section></summary><div class="docblock"><p>Set the field [...]
-</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-NestedField" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#512">source</a><a 
href="#impl-Clone-for-NestedField" class="anchor">§</a><h3 
class="code-header">imp [...]
-    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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-NestedField" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#512">source</a><a 
href="#impl-Clone-for-NestedField" class="anchor">§</a><h3 
class="code-header">imp [...]
+    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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-NestedField" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#512">source</a><a 
href="#impl-Serialize-for-NestedField" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html"; 
title="trait se [...]
     __S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/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.210/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><section id="impl-Eq-for-NestedField" 
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
diff --git a/api/iceberg/spec/struct.Schema.html 
b/api/iceberg/spec/struct.Schema.html
index 6db2e5eb..988e9b78 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#336-338">source</a><h4 
class="code-header">pub fn <a href="#method.field_id_by_name" 
class="fn">field_id_by_name</a>(&amp;self, name: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.str.html";>str</a>) -&gt; 
<a class="enum" href="https://doc.rust-lang.org/nightly/core/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#341-343">source</a><h4 
class="code-header">pub fn <a href="#method.name_by_field_id" 
class="fn">name_by_field_id</a>(&amp;self, field_id: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>) -&gt; 
<a class="enum" href="https://doc.rust-lang.org/nightly/core/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#346-348">source</a><h4 
class="code-header">pub fn <a href="#method.accessor_by_field_id" 
class="fn">accessor_by_field_id</a>(&amp;self, field_id: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>) -&gt; 
<a class="enum" href="https://doc.rust-lang.org/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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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.210/serde/ser/trait.Serialize.html"; 
title="trait serde::ser::Seri [...]
     __S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/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.210/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/spec/struct.StructType.html 
b/api/iceberg/spec/struct.StructType.html
index 2103ad1a..0a8830f8 100644
--- a/api/iceberg/spec/struct.StructType.html
+++ b/api/iceberg/spec/struct.StructType.html
@@ -3,8 +3,8 @@
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.field_by_id" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#448-450">source</a><h4 
class="code-header">pub fn <a href="#method.field_by_id" 
class="fn">field_by_id</a>(&amp;self, id: <a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>) -&gt; 
<a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.ht [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.field_by_name" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#462-464">source</a><h4 
class="code-header">pub fn <a href="#method.field_by_name" 
class="fn">field_by_name</a>(&amp;self, name: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.str.html";>str</a>) -&gt; 
<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/e [...]
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.fields" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#481-483">source</a><h4 
class="code-header">pub fn <a href="#method.fields" 
class="fn">fields</a>(&amp;self) -&gt; &amp;[<a class="type" 
href="type.NestedFieldRef.html" title="type 
iceberg::spec::NestedFieldRef">NestedFieldRef</a>]</h4></section></summary><div 
class="docblock"><p>Get fields.</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-StructType" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#380">source</a><a 
href="#impl-Clone-for-StructType" class="anchor">§</a><h3 
class="code-header">impl  [...]
-    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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-StructType" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#380">source</a><a 
href="#impl-Clone-for-StructType" class="anchor">§</a><h3 
class="code-header">impl  [...]
+    D: <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/de/trait.Deserializer.html"; 
title="trait 
serde::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div
 class='docblock'>Deserialize this value from the given Serde deserializer. <a 
href="https://docs.rs/serde/1.0.210/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-StructType" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/datatypes.rs.html#380">source</a><a 
href="#impl-Serialize-for-StructType" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.210/serde/ser/trait.Serialize.html"; 
title="trait serd [...]
     __S: <a class="trait" 
href="https://docs.rs/serde/1.0.210/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.210/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><section id="impl-Eq-for-StructType" 
class="impl"><a class="src rightside" href="../../src/iceberg/spec [...]
diff --git a/api/iceberg/struct.Error.html b/api/iceberg/struct.Error.html
index 6db1a5f9..92e56d20 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>(&amp;self) -&gt; <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>(&amp;self) -&gt; &amp;<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>(&amp;self) -&gt; &amp;(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 79d4a857..90baf63c 100644
--- a/api/search-index.js
+++ b/api/search-index.js
@@ -1,5 +1,5 @@
 var searchIndex = new Map(JSON.parse('[\
-["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
 [...]
+["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPIPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNONOOMOCOONNNNONCOCMNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOFFKRRNNNNNNNNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMNMHMNNNNNNNHNNNNNPPPPPPPPFKRGFIPPPPPPPPFPPPPPPPPPGGFPPFPIPPFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
 [...]
 
["iceberg_catalog_glue",{"t":"SSSSSFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQ","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","deref","deref","deref_mut","deref_mut","drop","drop","drop_namespace","drop_table","file_io","fmt","fmt","from","from","get_namespace","init","init","into","into","into_shared","i
 [...]
 
["iceberg_catalog_hms",{"t":"PPFFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Buffered","Framed","HmsCatalog","HmsCatalogConfig","HmsThriftTransport","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","builder","create_namespace","create_table","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop_namespace","drop_table","file_io","fmt","fmt","fmt","from","from","from","get_namespace","init","init","init","into
 [...]
 
["iceberg_catalog_memory",{"t":"FNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["MemoryCatalog","borrow","borrow_mut","create_namespace","create_table","deref","deref_mut","drop","drop_namespace","drop_table","fmt","from","get_namespace","init","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"],[28,"iceberg_catalog_memory::catalog"],[29,"i
 [...]
diff --git a/api/search.desc/iceberg/iceberg-desc-0-.js 
b/api/search.desc/iceberg/iceberg-desc-0-.js
index 339e00f1..4bf358fa 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/iceberg/io/file_io.rs.html 
b/api/src/iceberg/io/file_io.rs.html
index 4a8f5fb3..6c2bdca1 100644
--- a/api/src/iceberg/io/file_io.rs.html
+++ b/api/src/iceberg/io/file_io.rs.html
@@ -445,6 +445,16 @@
 <a href="#445" id="445">445</a>
 <a href="#446" id="446">446</a>
 <a href="#447" id="447">447</a>
+<a href="#448" id="448">448</a>
+<a href="#449" id="449">449</a>
+<a href="#450" id="450">450</a>
+<a href="#451" id="451">451</a>
+<a href="#452" id="452">452</a>
+<a href="#453" id="453">453</a>
+<a href="#454" id="454">454</a>
+<a href="#455" id="455">455</a>
+<a href="#456" id="456">456</a>
+<a href="#457" id="457">457</a>
 </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
@@ -479,16 +489,25 @@
 ///
 /// All path passed to `FileIO` must be absolute path starting with scheme 
string used to construct `FileIO`.
 /// For example, if you construct `FileIO` with `s3a` scheme, then all path 
passed to `FileIO` must start with `s3a://`.
+///
+/// Supported storages:
+///
+/// | Storage            | Feature Flag     | Schemes    |
+/// |--------------------|-------------------|------------|
+/// | Local file system  | `storage-fs`      | `file`     |
+/// | Memory             | `storage-memory`  | `memory`   |
+/// | S3                 | `storage-s3`      | `s3`, `s3a`|
+/// | GCS                | `storage-gcs`     | `gs`       |
 </span><span class="attr">#[derive(Clone, Debug)]
 </span><span class="kw">pub struct </span>FileIO {
     inner: Arc&lt;Storage&gt;,
 }
 
 <span class="kw">impl </span>FileIO {
-    <span class="doccomment">/// Try to infer file io scheme from path.
+    <span class="doccomment">/// Try to infer file io scheme from path. See 
[`FileIO`] for supported schemes.
     ///
-    /// If it's a valid url, for example http://example.org, url scheme will 
be used.
-    /// If it's not a valid url, will try to detect if it's a file path.
+    /// - If it's a valid url, for example `s3://bucket/a`, url scheme will be 
used, and the rest of the url will be ignored.
+    /// - If it's not a valid url, will try to detect if it's a file path.
     ///
     /// Otherwise will return parsing error.
     </span><span class="kw">pub fn </span>from_path(path: <span 
class="kw">impl </span>AsRef&lt;str&gt;) -&gt; <span 
class="kw">crate</span>::Result&lt;FileIOBuilder&gt; {
@@ -558,6 +577,7 @@
 
 <span class="kw">impl </span>FileIOBuilder {
     <span class="doccomment">/// Creates a new builder with scheme.
+    /// See [`FileIO`] for supported schemes.
     </span><span class="kw">pub fn </span>new(scheme_str: <span 
class="kw">impl </span>ToString) -&gt; <span class="self">Self </span>{
         <span class="self">Self </span>{
             scheme_str: <span 
class="prelude-val">Some</span>(scheme_str.to_string()),
diff --git a/api/src/iceberg/io/storage.rs.html 
b/api/src/iceberg/io/storage.rs.html
index 2dcb6f95..905f756d 100644
--- a/api/src/iceberg/io/storage.rs.html
+++ b/api/src/iceberg/io/storage.rs.html
@@ -170,6 +170,7 @@
 <a href="#170" id="170">170</a>
 <a href="#171" id="171">171</a>
 <a href="#172" id="172">172</a>
+<a href="#173" id="173">173</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
@@ -241,7 +242,8 @@
             </span>Scheme::Gcs =&gt; <span class="prelude-val">Ok</span>(<span 
class="self">Self</span>::Gcs {
                 config: <span 
class="kw">super</span>::gcs_config_parse(props)<span 
class="question-mark">?</span>.into(),
             }),
-            <span class="kw">_ </span>=&gt; <span 
class="prelude-val">Err</span>(Error::new(
+            <span class="comment">// Update doc on [`FileIO`] when adding new 
schemes.
+            </span><span class="kw">_ </span>=&gt; <span 
class="prelude-val">Err</span>(Error::new(
                 ErrorKind::FeatureUnsupported,
                 <span class="macro">format!</span>(<span 
class="string">"Constructing file io from scheme: {scheme} not supported 
now"</span>,),
             )),

Reply via email to