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 624abc06 deploy: 609b792e3f85c835bc9f0898f2ea5ee5eba215e9
624abc06 is described below

commit 624abc062726c2033c3da79674e461aaa77f3893
Author: liurenjie1024 <[email protected]>
AuthorDate: Fri Apr 18 13:39:22 2025 +0000

    deploy: 609b792e3f85c835bc9f0898f2ea5ee5eba215e9
---
 api/iceberg/all.html                               |   2 +-
 .../spec/constant.DEFAULT_SCHEMA_NAME_MAPPING.html |   2 +
 api/iceberg/spec/index.html                        |   6 +-
 .../constant.DEFAULT_SCHEMA_NAME_MAPPING.html      |  11 ++
 .../spec/name_mapping/struct.MappedField.html      |  11 ++
 .../spec/name_mapping/struct.NameMapping.html      |  11 ++
 api/iceberg/spec/sidebar-items.js                  |   2 +-
 api/iceberg/spec/struct.MappedField.html           |  46 +++++++
 api/iceberg/spec/struct.NameMapping.html           |  40 ++++++
 api/search-index.js                                |   4 +-
 api/search.desc/iceberg/iceberg-desc-0-.js         |   2 +-
 api/src-files.js                                   |   4 +-
 api/src/iceberg/spec/mod.rs.html                   |   4 +-
 .../mod.rs.html}                                   | 150 ++++++++++++++++++---
 api/trait.impl/core/clone/trait.Clone.js           |   4 +-
 api/trait.impl/core/cmp/trait.Eq.js                |   4 +-
 api/trait.impl/core/cmp/trait.PartialEq.js         |   4 +-
 api/trait.impl/core/fmt/trait.Debug.js             |   4 +-
 api/trait.impl/core/marker/trait.Freeze.js         |   4 +-
 api/trait.impl/core/marker/trait.Send.js           |   4 +-
 .../core/marker/trait.StructuralPartialEq.js       |   4 +-
 api/trait.impl/core/marker/trait.Sync.js           |   4 +-
 api/trait.impl/core/marker/trait.Unpin.js          |   4 +-
 .../core/panic/unwind_safe/trait.RefUnwindSafe.js  |   4 +-
 .../core/panic/unwind_safe/trait.UnwindSafe.js     |   4 +-
 api/trait.impl/serde/de/trait.Deserialize.js       |   4 +-
 api/trait.impl/serde/ser/trait.Serialize.js        |   4 +-
 27 files changed, 290 insertions(+), 57 deletions(-)

diff --git a/api/iceberg/all.html b/api/iceberg/all.html
index 68d224fd..d35bbb91 100644
--- a/api/iceberg/all.html
+++ b/api/iceberg/all.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="List of 
all items in this crate"><title>List of all items in this 
crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-
 [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="List of 
all items in this crate"><title>List of all items in this 
crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-
 [...]
\ No newline at end of file
diff --git a/api/iceberg/spec/constant.DEFAULT_SCHEMA_NAME_MAPPING.html 
b/api/iceberg/spec/constant.DEFAULT_SCHEMA_NAME_MAPPING.html
new file mode 100644
index 00000000..cb9d554a
--- /dev/null
+++ b/api/iceberg/spec/constant.DEFAULT_SCHEMA_NAME_MAPPING.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Property 
name for name mapping."><title>DEFAULT_SCHEMA_NAME_MAPPING in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.
 [...]
+</div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg/spec/index.html b/api/iceberg/spec/index.html
index c10cd95d..03e40d0d 100644
--- a/api/iceberg/spec/index.html
+++ b/api/iceberg/spec/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Spec for 
Iceberg."><title>iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.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="Spec for 
Iceberg."><title>iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff
 [...]
 </div></details><h2 id="structs" class="section-header">Structs<a 
href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div 
class="item-name"><a class="struct" href="struct.BlobMetadata.html" 
title="struct iceberg::spec::BlobMetadata">Blob<wbr>Metadata</a></div><div 
class="desc docblock-short">Represents a blob of metadata, which is a part of a 
statistics file</div></li><li><div class="item-name"><a class="struct" 
href="struct.DataFile.html" title="struct iceberg::spec::Da [...]
 guaranteed to be correct when used.</div></li><li><div class="item-name"><a 
class="struct" href="struct.FieldSummary.html" title="struct 
iceberg::spec::FieldSummary">Field<wbr>Summary</a></div><div class="desc 
docblock-short">Field summary for partition field in the 
spec.</div></li><li><div class="item-name"><a class="struct" 
href="struct.ListType.html" title="struct 
iceberg::spec::ListType">List<wbr>Type</a></div><div class="desc 
docblock-short">A list is a collection of values with som [...]
 Elements can be either optional or required. Element types may be any 
type.</div></li><li><div class="item-name"><a class="struct" 
href="struct.Manifest.html" title="struct 
iceberg::spec::Manifest">Manifest</a></div><div class="desc docblock-short">A 
manifest contains metadata and a list of entries.</div></li><li><div 
class="item-name"><a class="struct" href="struct.ManifestEntry.html" 
title="struct iceberg::spec::ManifestEntry">Manifest<wbr>Entry</a></div><div 
class="desc docblock-short [...]
@@ -10,7 +10,7 @@ so that we can hash the map in a deterministic way. But it 
also means that the o
 for the hash value.</div></li><li><div class="item-name"><a class="struct" 
href="struct.MapType.html" title="struct 
iceberg::spec::MapType">MapType</a></div><div class="desc docblock-short">A map 
is a collection of key-value pairs with a key type and a value type.
 Both the key field and value field each have an integer id that is unique in 
the table schema.
 Map keys are required and map values can be either optional or required.
-Both map keys and map values may be any type, including nested 
types.</div></li><li><div class="item-name"><a class="struct" 
href="struct.MetadataLog.html" title="struct 
iceberg::spec::MetadataLog">Metadata<wbr>Log</a></div><div class="desc 
docblock-short">Encodes changes to the previous metadata files for the 
table</div></li><li><div class="item-name"><a class="struct" 
href="struct.NestedField.html" title="struct 
iceberg::spec::NestedField">Nested<wbr>Field</a></div><div class="desc doc [...]
+Both map keys and map values may be any type, including nested 
types.</div></li><li><div class="item-name"><a class="struct" 
href="struct.MappedField.html" title="struct 
iceberg::spec::MappedField">Mapped<wbr>Field</a></div><div class="desc 
docblock-short">Maps field names to IDs.</div></li><li><div 
class="item-name"><a class="struct" href="struct.MetadataLog.html" 
title="struct iceberg::spec::MetadataLog">Metadata<wbr>Log</a></div><div 
class="desc docblock-short">Encodes changes to the  [...]
 Each field can be either optional or required, meaning that values can (or 
cannot) be null. Fields may be any type.
 Fields may have an optional comment or doc string. Fields can have default 
values.</div></li><li><div class="item-name"><a class="struct" 
href="struct.PartitionField.html" title="struct 
iceberg::spec::PartitionField">Partition<wbr>Field</a></div><div class="desc 
docblock-short">Partition fields capture the transform from table data to 
partition values.</div></li><li><div class="item-name"><a class="struct" 
href="struct.PartitionSpec.html" title="struct 
iceberg::spec::PartitionSpec">Parti [...]
 It gathers metrics about added or removed data files and manifests, and tracks
@@ -23,5 +23,5 @@ They are used to transport schema information as part of the 
REST specification.
 The main difference to <a href="struct.PartitionSpec.html" title="struct 
iceberg::spec::PartitionSpec"><code>PartitionSpec</code></a> is that the field 
ids are optional.</div></li><li><div class="item-name"><a class="struct" 
href="struct.UnboundPartitionSpecBuilder.html" title="struct 
iceberg::spec::UnboundPartitionSpecBuilder">Unbound<wbr>Partition<wbr>Spec<wbr>Builder</a></div><div
 class="desc docblock-short">Create a new 
UnboundPartitionSpec</div></li><li><div class="item-name"><a cla [...]
 position deletes (all v1 files are data files)</div></li><li><div 
class="item-name"><a class="enum" href="enum.DataFileBuilderError.html" 
title="enum 
iceberg::spec::DataFileBuilderError">Data<wbr>File<wbr>Builder<wbr>Error</a></div><div
 class="desc docblock-short">Error type for DataFileBuilder</div></li><li><div 
class="item-name"><a class="enum" href="enum.DataFileFormat.html" title="enum 
iceberg::spec::DataFileFormat">Data<wbr>File<wbr>Format</a></div><div 
class="desc docblock-short">F [...]
 in addition to transforming data values.</div></li><li><div 
class="item-name"><a class="enum" href="enum.Type.html" title="enum 
iceberg::spec::Type">Type</a></div><div class="desc docblock-short">All data 
types are either primitives or nested types, which are maps, lists, or 
structs.</div></li><li><div class="item-name"><a class="enum" 
href="enum.ViewFormatVersion.html" title="enum 
iceberg::spec::ViewFormatVersion">View<wbr>Format<wbr>Version</a></div><div 
class="desc docblock-short">Ice [...]
-Representations are documented ways to express a view 
definition.</div></li></ul><h2 id="constants" 
class="section-header">Constants<a href="#constants" 
class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a 
class="constant" href="constant.LIST_FIELD_NAME.html" title="constant 
iceberg::spec::LIST_FIELD_NAME">LIST_<wbr>FIELD_<wbr>NAME</a></div><div 
class="desc docblock-short">Field name for list type.</div></li><li><div 
class="item-name"><a class="constant" href="co [...]
+Representations are documented ways to express a view 
definition.</div></li></ul><h2 id="constants" 
class="section-header">Constants<a href="#constants" 
class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a 
class="constant" href="constant.DEFAULT_SCHEMA_NAME_MAPPING.html" 
title="constant 
iceberg::spec::DEFAULT_SCHEMA_NAME_MAPPING">DEFAULT_<wbr>SCHEMA_<wbr>NAME_<wbr>MAPPING</a></div><div
 class="desc docblock-short">Property name for name mapping.</div></li><li><div 
[...]
 Return the bytes written.</div></li></ul><h2 id="types" 
class="section-header">Type Aliases<a href="#types" 
class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a 
class="type" href="type.ManifestEntryRef.html" title="type 
iceberg::spec::ManifestEntryRef">Manifest<wbr>Entry<wbr>Ref</a></div><div 
class="desc docblock-short">Reference to <a href="struct.ManifestEntry.html" 
title="struct 
iceberg::spec::ManifestEntry"><code>ManifestEntry</code></a>.</div></li><li><div
 c [...]
\ No newline at end of file
diff --git 
a/api/iceberg/spec/name_mapping/constant.DEFAULT_SCHEMA_NAME_MAPPING.html 
b/api/iceberg/spec/name_mapping/constant.DEFAULT_SCHEMA_NAME_MAPPING.html
new file mode 100644
index 00000000..ae4e9ae1
--- /dev/null
+++ b/api/iceberg/spec/name_mapping/constant.DEFAULT_SCHEMA_NAME_MAPPING.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta http-equiv="refresh" 
content="0;URL=../../../iceberg/spec/constant.DEFAULT_SCHEMA_NAME_MAPPING.html">
+    <title>Redirection</title>
+</head>
+<body>
+    <p>Redirecting to <a 
href="../../../iceberg/spec/constant.DEFAULT_SCHEMA_NAME_MAPPING.html">../../../iceberg/spec/constant.DEFAULT_SCHEMA_NAME_MAPPING.html</a>...</p>
+    
<script>location.replace("../../../iceberg/spec/constant.DEFAULT_SCHEMA_NAME_MAPPING.html"
 + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/api/iceberg/spec/name_mapping/struct.MappedField.html 
b/api/iceberg/spec/name_mapping/struct.MappedField.html
new file mode 100644
index 00000000..fb021d38
--- /dev/null
+++ b/api/iceberg/spec/name_mapping/struct.MappedField.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta http-equiv="refresh" 
content="0;URL=../../../iceberg/spec/struct.MappedField.html">
+    <title>Redirection</title>
+</head>
+<body>
+    <p>Redirecting to <a 
href="../../../iceberg/spec/struct.MappedField.html">../../../iceberg/spec/struct.MappedField.html</a>...</p>
+    <script>location.replace("../../../iceberg/spec/struct.MappedField.html" + 
location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/api/iceberg/spec/name_mapping/struct.NameMapping.html 
b/api/iceberg/spec/name_mapping/struct.NameMapping.html
new file mode 100644
index 00000000..0cbb0204
--- /dev/null
+++ b/api/iceberg/spec/name_mapping/struct.NameMapping.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta http-equiv="refresh" 
content="0;URL=../../../iceberg/spec/struct.NameMapping.html">
+    <title>Redirection</title>
+</head>
+<body>
+    <p>Redirecting to <a 
href="../../../iceberg/spec/struct.NameMapping.html">../../../iceberg/spec/struct.NameMapping.html</a>...</p>
+    <script>location.replace("../../../iceberg/spec/struct.NameMapping.html" + 
location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/api/iceberg/spec/sidebar-items.js 
b/api/iceberg/spec/sidebar-items.js
index 3912b131..ae7b08f6 100644
--- a/api/iceberg/spec/sidebar-items.js
+++ b/api/iceberg/spec/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = 
{"constant":["LIST_FIELD_NAME","MAIN_BRANCH","MAP_KEY_FIELD_NAME","MAP_VALUE_FIELD_NAME","PROPERTY_CURRENT_SCHEMA","PROPERTY_CURRENT_SNAPSHOT_ID","PROPERTY_CURRENT_SNAPSHOT_SUMMARY","PROPERTY_CURRENT_SNAPSHOT_TIMESTAMP","PROPERTY_DEFAULT_PARTITION_SPEC","PROPERTY_DEFAULT_SORT_ORDER","PROPERTY_FORMAT_VERSION","PROPERTY_METADATA_PREVIOUS_VERSIONS_MAX","PROPERTY_METADATA_PREVIOUS_VERSIONS_MAX_DEFAULT","PROPERTY_SNAPSHOT_COUNT","PROPERTY_UUID","PROPERTY_WRITE_PARTITION
 [...]
\ No newline at end of file
+window.SIDEBAR_ITEMS = 
{"constant":["DEFAULT_SCHEMA_NAME_MAPPING","LIST_FIELD_NAME","MAIN_BRANCH","MAP_KEY_FIELD_NAME","MAP_VALUE_FIELD_NAME","PROPERTY_CURRENT_SCHEMA","PROPERTY_CURRENT_SNAPSHOT_ID","PROPERTY_CURRENT_SNAPSHOT_SUMMARY","PROPERTY_CURRENT_SNAPSHOT_TIMESTAMP","PROPERTY_DEFAULT_PARTITION_SPEC","PROPERTY_DEFAULT_SORT_ORDER","PROPERTY_FORMAT_VERSION","PROPERTY_METADATA_PREVIOUS_VERSIONS_MAX","PROPERTY_METADATA_PREVIOUS_VERSIONS_MAX_DEFAULT","PROPERTY_SNAPSHOT_COUNT","PROPERTY_U
 [...]
\ No newline at end of file
diff --git a/api/iceberg/spec/struct.MappedField.html 
b/api/iceberg/spec/struct.MappedField.html
new file mode 100644
index 00000000..e429af6e
--- /dev/null
+++ b/api/iceberg/spec/struct.MappedField.html
@@ -0,0 +1,46 @@
+<!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="Maps field 
names to IDs."><title>MappedField in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Reg
 [...]
+</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-MappedField" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#61-85">Source</a><a 
href="#impl-MappedField" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.MappedField.html" title= [...]
+    field_id: <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.i32.html";>i32</a>&gt;,
+    names: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"; 
title="struct alloc::string::String">String</a>&gt;,
+    fields: <a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"; 
title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" 
href="struct.MappedField.html" title="struct 
iceberg::spec::MappedField">MappedField</a>&gt;,
+) -&gt; Self</h4></section></summary><div class="docblock"><p>Create a new <a 
href="struct.MappedField.html" title="struct 
iceberg::spec::MappedField"><code>MappedField</code></a>.</p>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.field_id" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#72-74">Source</a><h4 
class="code-header">pub fn <a href="#method.field_id" 
class="fn">field_id</a>(&amp;self) -&gt; <a class="enum" 
href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"; 
title="enum core::option::Option">Option</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.o [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.names" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#77-79">Source</a><h4 
class="code-header">pub fn <a href="#method.names" 
class="fn">names</a>(&amp;self) -&gt; &amp;[<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"; 
title="struct alloc::string::String">String</a>]</h4></section></summary><div 
class="docblock">< [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.fields" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#82-84">Source</a><h4 
class="code-header">pub fn <a href="#method.fields" 
class="fn">fields</a>(&amp;self) -&gt; &amp;[<a class="struct" 
href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"; 
title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" 
href="struct.MappedField.html" title= [...]
+</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-MappedField" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#49">Source</a><a 
href="#impl-Clone-for-MappedField" class="anchor">§</a><h3 class="code-heade 
[...]
+    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Parti [...]
+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-MappedField" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#49">Source</a><a 
href="#impl-Serialize-for-MappedField" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html"; 
title="trait serde::s [...]
+    __S: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><section id="impl-Eq-for-MappedField" 
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
+    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#139";>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#211";>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#218";>Source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href= [...]
+    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html"; 
title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#275";>Source</a><a
 href="#method.clone_to_uninit" class="anchor">§</a><h4 
class="code-header">unsaf [...]
+    Q: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"; title="trait 
core::cmp::Eq">Eq</a> + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,
+    K: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"; 
title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<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.equivalent" class="method trait-impl"><a href="#method.equivalent" 
class="anchor" [...]
+    Q: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"; title="trait 
core::cmp::Eq">Eq</a> + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,
+    K: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"; 
title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<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.equivalent-1" class="method trait-impl"><a 
href="#method.equivalent-1" class="anc [...]
+</div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Instrument-for-T" 
class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; Instrument for T</h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.instrument" class="method trait-impl"><a href="#method.instrument" 
class="anchor">§</a><h4 class="code-header">fn <a class="fn">in [...]
+<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details 
class="toggle method-toggle" open><summary><section id="method.in_current_span" 
class="method trait-impl"><a href="#method.in_current_span" 
class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">in_current_span</a>(self) -&gt; 
Instrumented&lt;Self&gt;</h4></section></summary><div 
class='docblock'>Instruments this type with the <a 
href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</co 
[...]
+<code>Instrumented</code> wrapper. <a>Read 
more</a></div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" 
class="impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#748-750";>Source</a><a
 href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T, U&gt; <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trai [...]
+    U: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"; 
title="trait 
core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.into" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#758";>Source</a><a
 href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href= 
[...]
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"; 
title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to 
do.</p>
+</div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-IntoEither-for-T" 
class="impl"><a class="src rightside" 
href="https://docs.rs/either/1/src/either/into_either.rs.html#64";>Source</a><a 
href="#impl-IntoEither-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; <a class="trait" 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html"; 
title="trait either::into_either::IntoEither">IntoEither</a> for T</h3></sec 
[...]
+if <code>into_left</code> is <code>true</code>.
+Converts <code>self</code> into a <a 
href="https://docs.rs/either/1/either/enum.Either.html#variant.Right"; 
title="variant either::Either::Right"><code>Right</code></a> variant of <a 
href="https://docs.rs/either/1/either/enum.Either.html"; title="enum 
either::Either"><code>Either&lt;Self, Self&gt;</code></a>
+otherwise. <a 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either";>Read
 more</a></div></details><details class="toggle method-toggle" 
open><summary><section id="method.into_either_with" class="method 
trait-impl"><a class="src rightside" 
href="https://docs.rs/either/1/src/either/into_either.rs.html#55-57";>Source</a><a
 href="#method.into_either_with" class="anchor">§</a><h4 class="code-header">fn 
<a href="https://docs.rs/either/1/either/into_either/tr [...]
+    F: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html"; 
title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;Self) -&gt; <a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a>,</div></h4></section></summary><div
 class='docblock'>Converts <code>self</code> into a <a 
href="https://docs.rs/either/1/either/enum.Either.html#variant.Left"; 
title="variant either::Either::Left"><code>Left</code></a> variant  [...]
+if <code>into_left(&amp;self)</code> returns <code>true</code>.
+Converts <code>self</code> into a <a 
href="https://docs.rs/either/1/either/enum.Either.html#variant.Right"; 
title="variant either::Either::Right"><code>Right</code></a> variant of <a 
href="https://docs.rs/either/1/either/enum.Either.html"; title="enum 
either::Either"><code>Either&lt;Self, Self&gt;</code></a>
+otherwise. <a 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Pointable-for-T" 
class="impl"><a href="#impl-Pointable-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div 
class="impl-items"><details class="toggle" open><summary><section 
id="associatedconstant.ALIGN" clas [...]
+    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html"; 
title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle" open><summary><section 
id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src 
rightside" 
href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#86";>Source</a><a
 href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type 
<a href=" [...]
+    U: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trait 
core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div 
class="impl-items"><details class="toggle" open><summary><section 
id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src 
rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#809";>Source</a><a
 href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-hea [...]
+    U: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"; 
title="trait 
core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div
 class="impl-items"><details class="toggle" open><summary><section 
id="associatedtype.Error" class="associatedtype trait-impl"><a class="src 
rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#794";>Source</a><a
 href="#associatedtype.Error" class="anchor">§</a><h4 class="cod [...]
+    V: MultiLane&lt;T&gt;,</div></h3></section></summary><div 
class="impl-items"><section id="method.vzip" class="method trait-impl"><a 
href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">vzip</a>(self) -&gt; V</h4></section></div></details><details 
class="toggle implementors-toggle"><summary><section 
id="impl-WithSubscriber-for-T" class="impl"><a 
href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; WithSubscriber for T< [...]
+    S: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trait 
core::convert::Into">Into</a>&lt;Dispatch&gt;,</div></h4></section></summary><div
 class='docblock'>Attaches the provided <a 
href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
+[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details 
class="toggle method-toggle" open><summary><section 
id="method.with_current_subscriber" class="method trait-impl"><a 
href="#method.with_current_subscriber" class="anchor">§</a><h4 
class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -&gt; 
WithDispatch&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches 
the current <a href="crate::dispatcher#setting-the-default-subscriber">defaul 
[...]
+[<code>WithDispatch</code>] wrapper. <a>Read 
more</a></div></details></div></details><section id="impl-Allocation-for-T" 
class="impl"><a href="#impl-Allocation-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; Allocation for T<div class="where">where
+    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html";
 title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> + <a 
class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"; 
title="trait core::marker::Send">Send</a> + <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"; 
title="trait core::marker::Sync">Sync</a>,</div></h3></section><section 
id="impl-Deserial [...]
+    T: for&lt;'de&gt; <a class="trait" 
href="https://docs.rs/serde/1.0.217/serde/de/trait.Deserialize.html"; 
title="trait 
serde::de::Deserialize">Deserialize</a>&lt;'de&gt;,</div></h3></section><section
 id="impl-ErasedDestructor-for-T" class="impl"><a 
href="#impl-ErasedDestructor-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; ErasedDestructor for T<div class="where">where
+    T: 'static,</div></h3></section><section id="impl-MaybeSend-for-T" 
class="impl"><a href="#impl-MaybeSend-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; MaybeSend for T<div class="where">where
+    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"; 
title="trait core::marker::Send">Send</a>,</div></h3></section><section 
id="impl-MaybeSendSync-for-T" class="impl"><a href="#impl-MaybeSendSync-for-T" 
class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; MaybeSendSync for 
T</h3></section></div><script type="text/json" 
id="notable-traits-data">{"Either<Self, Self>":"<h3>Notable traits for <code><a 
class=\"enum\" href=\"https://docs.rs/either/ [...]
\ No newline at end of file
diff --git a/api/iceberg/spec/struct.NameMapping.html 
b/api/iceberg/spec/struct.NameMapping.html
new file mode 100644
index 00000000..ffd3779a
--- /dev/null
+++ b/api/iceberg/spec/struct.NameMapping.html
@@ -0,0 +1,40 @@
+<!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="Iceberg 
fallback field name to ID mapping."><title>NameMapping in iceberg::spec - 
Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f0a.woff2
 [...]
+</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-NameMapping" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#35-45">Source</a><a 
href="#impl-NameMapping" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.NameMapping.html" title= [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.fields" class="method"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#42-44">Source</a><h4 
class="code-header">pub fn <a href="#method.fields" 
class="fn">fields</a>(&amp;self) -&gt; &amp;[<a class="struct" 
href="struct.MappedField.html" title="struct 
iceberg::spec::MappedField">MappedField</a>]</h4></section></summary><div 
class="docblock"><p>Get a reference to fields w [...]
+</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-NameMapping" class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#29">Source</a><a 
href="#impl-Clone-for-NameMapping" class="anchor">§</a><h3 class="code-heade 
[...]
+    __D: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/serde/de/trait.Deserialize.html#tymethod.deserialize";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle" open><summary><section id="impl-Parti [...]
+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-NameMapping" 
class="impl"><a class="src rightside" 
href="../../src/iceberg/spec/name_mapping/mod.rs.html#29">Source</a><a 
href="#impl-Serialize-for-NameMapping" class="anchor">§</a><h3 
class="code-header">impl <a class="trait" 
href="https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html"; 
title="trait serde::s [...]
+    __S: <a class="trait" 
href="https://docs.rs/serde/1.0.217/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.217/serde/ser/trait.Serialize.html#tymethod.serialize";>Read
 more</a></div></details></div></details><section id="impl-Eq-for-NameMapping" 
class="impl"><a class="src rightside" href="../../src/iceberg/spe [...]
+    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#139";>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#211";>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#218";>Source</a><a
 href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a 
href= [...]
+    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html"; 
title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#275";>Source</a><a
 href="#method.clone_to_uninit" class="anchor">§</a><h4 
class="code-header">unsaf [...]
+    Q: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"; title="trait 
core::cmp::Eq">Eq</a> + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,
+    K: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"; 
title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<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.equivalent" class="method trait-impl"><a href="#method.equivalent" 
class="anchor" [...]
+    Q: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html"; title="trait 
core::cmp::Eq">Eq</a> + ?<a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"; 
title="trait core::marker::Sized">Sized</a>,
+    K: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"; 
title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<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.equivalent-1" class="method trait-impl"><a 
href="#method.equivalent-1" class="anc [...]
+</div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Instrument-for-T" 
class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; Instrument for T</h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.instrument" class="method trait-impl"><a href="#method.instrument" 
class="anchor">§</a><h4 class="code-header">fn <a class="fn">in [...]
+<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details 
class="toggle method-toggle" open><summary><section id="method.in_current_span" 
class="method trait-impl"><a href="#method.in_current_span" 
class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">in_current_span</a>(self) -&gt; 
Instrumented&lt;Self&gt;</h4></section></summary><div 
class='docblock'>Instruments this type with the <a 
href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</co 
[...]
+<code>Instrumented</code> wrapper. <a>Read 
more</a></div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" 
class="impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#748-750";>Source</a><a
 href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T, U&gt; <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trai [...]
+    U: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"; 
title="trait 
core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div 
class="impl-items"><details class="toggle method-toggle" open><summary><section 
id="method.into" class="method trait-impl"><a class="src rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#758";>Source</a><a
 href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href= 
[...]
+<p>That is, this conversion is whatever the implementation of
+<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"; 
title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to 
do.</p>
+</div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-IntoEither-for-T" 
class="impl"><a class="src rightside" 
href="https://docs.rs/either/1/src/either/into_either.rs.html#64";>Source</a><a 
href="#impl-IntoEither-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; <a class="trait" 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html"; 
title="trait either::into_either::IntoEither">IntoEither</a> for T</h3></sec 
[...]
+if <code>into_left</code> is <code>true</code>.
+Converts <code>self</code> into a <a 
href="https://docs.rs/either/1/either/enum.Either.html#variant.Right"; 
title="variant either::Either::Right"><code>Right</code></a> variant of <a 
href="https://docs.rs/either/1/either/enum.Either.html"; title="enum 
either::Either"><code>Either&lt;Self, Self&gt;</code></a>
+otherwise. <a 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either";>Read
 more</a></div></details><details class="toggle method-toggle" 
open><summary><section id="method.into_either_with" class="method 
trait-impl"><a class="src rightside" 
href="https://docs.rs/either/1/src/either/into_either.rs.html#55-57";>Source</a><a
 href="#method.into_either_with" class="anchor">§</a><h4 class="code-header">fn 
<a href="https://docs.rs/either/1/either/into_either/tr [...]
+    F: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html"; 
title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;Self) -&gt; <a 
class="primitive" 
href="https://doc.rust-lang.org/nightly/std/primitive.bool.html";>bool</a>,</div></h4></section></summary><div
 class='docblock'>Converts <code>self</code> into a <a 
href="https://docs.rs/either/1/either/enum.Either.html#variant.Left"; 
title="variant either::Either::Left"><code>Left</code></a> variant  [...]
+if <code>into_left(&amp;self)</code> returns <code>true</code>.
+Converts <code>self</code> into a <a 
href="https://docs.rs/either/1/either/enum.Either.html#variant.Right"; 
title="variant either::Either::Right"><code>Right</code></a> variant of <a 
href="https://docs.rs/either/1/either/enum.Either.html"; title="enum 
either::Either"><code>Either&lt;Self, Self&gt;</code></a>
+otherwise. <a 
href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with";>Read
 more</a></div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Pointable-for-T" 
class="impl"><a href="#impl-Pointable-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div 
class="impl-items"><details class="toggle" open><summary><section 
id="associatedconstant.ALIGN" clas [...]
+    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html"; 
title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div 
class="impl-items"><details class="toggle" open><summary><section 
id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src 
rightside" 
href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#86";>Source</a><a
 href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type 
<a href=" [...]
+    U: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trait 
core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div 
class="impl-items"><details class="toggle" open><summary><section 
id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src 
rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#809";>Source</a><a
 href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-hea [...]
+    U: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"; 
title="trait 
core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div
 class="impl-items"><details class="toggle" open><summary><section 
id="associatedtype.Error" class="associatedtype trait-impl"><a class="src 
rightside" 
href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#794";>Source</a><a
 href="#associatedtype.Error" class="anchor">§</a><h4 class="cod [...]
+    V: MultiLane&lt;T&gt;,</div></h3></section></summary><div 
class="impl-items"><section id="method.vzip" class="method trait-impl"><a 
href="#method.vzip" class="anchor">§</a><h4 class="code-header">fn <a 
class="fn">vzip</a>(self) -&gt; V</h4></section></div></details><details 
class="toggle implementors-toggle"><summary><section 
id="impl-WithSubscriber-for-T" class="impl"><a 
href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; WithSubscriber for T< [...]
+    S: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"; 
title="trait 
core::convert::Into">Into</a>&lt;Dispatch&gt;,</div></h4></section></summary><div
 class='docblock'>Attaches the provided <a 
href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
+[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details 
class="toggle method-toggle" open><summary><section 
id="method.with_current_subscriber" class="method trait-impl"><a 
href="#method.with_current_subscriber" class="anchor">§</a><h4 
class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -&gt; 
WithDispatch&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches 
the current <a href="crate::dispatcher#setting-the-default-subscriber">defaul 
[...]
+[<code>WithDispatch</code>] wrapper. <a>Read 
more</a></div></details></div></details><section id="impl-Allocation-for-T" 
class="impl"><a href="#impl-Allocation-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; Allocation for T<div class="where">where
+    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html";
 title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> + <a 
class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"; 
title="trait core::marker::Send">Send</a> + <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"; 
title="trait core::marker::Sync">Sync</a>,</div></h3></section><section 
id="impl-Deserial [...]
+    T: for&lt;'de&gt; <a class="trait" 
href="https://docs.rs/serde/1.0.217/serde/de/trait.Deserialize.html"; 
title="trait 
serde::de::Deserialize">Deserialize</a>&lt;'de&gt;,</div></h3></section><section
 id="impl-ErasedDestructor-for-T" class="impl"><a 
href="#impl-ErasedDestructor-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; ErasedDestructor for T<div class="where">where
+    T: 'static,</div></h3></section><section id="impl-MaybeSend-for-T" 
class="impl"><a href="#impl-MaybeSend-for-T" class="anchor">§</a><h3 
class="code-header">impl&lt;T&gt; MaybeSend for T<div class="where">where
+    T: <a class="trait" 
href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"; 
title="trait core::marker::Send">Send</a>,</div></h3></section><section 
id="impl-MaybeSendSync-for-T" class="impl"><a href="#impl-MaybeSendSync-for-T" 
class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; MaybeSendSync for 
T</h3></section></div><script type="text/json" 
id="notable-traits-data">{"Either<Self, Self>":"<h3>Notable traits for <code><a 
class=\"enum\" href=\"https://docs.rs/either/ [...]
\ No newline at end of file
diff --git a/api/search-index.js b/api/search-index.js
index 3e999553..8f41e038 100644
--- a/api/search-index.js
+++ b/api/search-index.js
@@ -1,4 +1,4 @@
-var searchIndex = new 
Map(JSON.parse('[["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPPPPPIPPPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOCMOCOONNNNONCOCMNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFFFFKSRRSNNNNNNNNHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNMNMHM
 [...]
+var searchIndex = new 
Map(JSON.parse('[["iceberg",{"t":"PPPPPKPPPPPFGPPPFFPPPPPPPPPPIPPPPPPPPFFFGGPPPFNCNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNMMOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMQNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNCNNNNNNNNNNNCNMMMOONNNOOONOMNNNNNNONOOCMOCOONNNNONCOCMNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFFFFKSRRSNNNNNNNNHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNMNMHM
 [...]
 if (typeof exports !== 'undefined') exports.searchIndex = searchIndex;
 else if (window.initSearch) window.initSearch(searchIndex);
-//{"start":39,"fragment_lengths":[85713,1200,2348,2291,1821,2127,2098,2233,1414,3389,787,148,1116]}
\ No newline at end of file
+//{"start":39,"fragment_lengths":[86656,1200,2348,2291,1821,2127,2098,2233,1414,3389,787,148,1116]}
\ No newline at end of file
diff --git a/api/search.desc/iceberg/iceberg-desc-0-.js 
b/api/search.desc/iceberg/iceberg-desc-0-.js
index 2139446a..50d705d3 100644
--- a/api/search.desc/iceberg/iceberg-desc-0-.js
+++ b/api/search.desc/iceberg/iceberg-desc-0-.js
@@ -1 +1 @@
-searchState.loadedDescShard("iceberg", 0, "Apache Iceberg Official Native Rust 
Implementation\nAdd a new schema to the table\nAdd snapshot to table.\nAdd sort 
order to table.\nAdd a new partition spec to the table\nAssign a new UUID to 
the table\nThe catalog API for Iceberg Rust.\nThe table’s current schema id 
must match the requirement.\nIceberg data is invalid.\nThe table’s default sort 
order id must match the …\nThe table’s default spec id must match the 
requirement.\nContains the err [...]
\ No newline at end of file
+searchState.loadedDescShard("iceberg", 0, "Apache Iceberg Official Native Rust 
Implementation\nAdd a new schema to the table\nAdd snapshot to table.\nAdd sort 
order to table.\nAdd a new partition spec to the table\nAssign a new UUID to 
the table\nThe catalog API for Iceberg Rust.\nThe table’s current schema id 
must match the requirement.\nIceberg data is invalid.\nThe table’s default sort 
order id must match the …\nThe table’s default spec id must match the 
requirement.\nContains the err [...]
\ No newline at end of file
diff --git a/api/src-files.js b/api/src-files.js
index e35d15e5..74279efb 100644
--- a/api/src-files.js
+++ b/api/src-files.js
@@ -1,3 +1,3 @@
-var srcIndex = new 
Map(JSON.parse('[["iceberg",["",[["arrow",[],["delete_file_manager.rs","mod.rs","nan_val_cnt_visitor.rs","reader.rs","record_batch_projector.rs","record_batch_transformer.rs","schema.rs","value.rs"]],["avro",[],["mod.rs","schema.rs"]],["catalog",[],["mod.rs"]],["expr",[["visitors",[],["bound_predicate_visitor.rs","expression_evaluator.rs","inclusive_metrics_evaluator.rs","inclusive_projection.rs","manifest_evaluator.rs","mod.rs","page_index_evaluator.rs","row_group_met
 [...]
+var srcIndex = new 
Map(JSON.parse('[["iceberg",["",[["arrow",[],["delete_file_manager.rs","mod.rs","nan_val_cnt_visitor.rs","reader.rs","record_batch_projector.rs","record_batch_transformer.rs","schema.rs","value.rs"]],["avro",[],["mod.rs","schema.rs"]],["catalog",[],["mod.rs"]],["expr",[["visitors",[],["bound_predicate_visitor.rs","expression_evaluator.rs","inclusive_metrics_evaluator.rs","inclusive_projection.rs","manifest_evaluator.rs","mod.rs","page_index_evaluator.rs","row_group_met
 [...]
 createSrcSidebar();
-//{"start":36,"fragment_lengths":[1936,42,91,90,80,80,72,67,48,194,49,95,63]}
\ No newline at end of file
+//{"start":36,"fragment_lengths":[1949,42,91,90,80,80,72,67,48,194,49,95,63]}
\ No newline at end of file
diff --git a/api/src/iceberg/spec/mod.rs.html b/api/src/iceberg/spec/mod.rs.html
index 226bec6a..42c0ac56 100644
--- a/api/src/iceberg/spec/mod.rs.html
+++ b/api/src/iceberg/spec/mod.rs.html
@@ -49,7 +49,8 @@
 <a href="#48" id="48">48</a>
 <a href="#49" id="49">49</a>
 <a href="#50" id="50">50</a>
-<a href="#51" id="51">51</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#51" id="51">51</a>
+<a href="#52" id="52">52</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -89,6 +90,7 @@
 <span class="kw">pub use </span>datatypes::<span class="kw-2">*</span>;
 <span class="kw">pub use </span>manifest::<span class="kw-2">*</span>;
 <span class="kw">pub use </span>manifest_list::<span class="kw-2">*</span>;
+<span class="kw">pub use </span>name_mapping::<span class="kw-2">*</span>;
 <span class="kw">pub use </span>partition::<span class="kw-2">*</span>;
 <span class="kw">pub use </span>schema::<span class="kw-2">*</span>;
 <span class="kw">pub use </span>snapshot::<span class="kw-2">*</span>;
diff --git a/api/src/iceberg/spec/name_mapping.rs.html 
b/api/src/iceberg/spec/name_mapping/mod.rs.html
similarity index 77%
rename from api/src/iceberg/spec/name_mapping.rs.html
rename to api/src/iceberg/spec/name_mapping/mod.rs.html
index 0e5b3311..73052e32 100644
--- a/api/src/iceberg/spec/name_mapping.rs.html
+++ b/api/src/iceberg/spec/name_mapping/mod.rs.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="Source of 
the Rust file 
`crates/iceberg/src/spec/name_mapping.rs`."><title>name_mapping.rs - 
source</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e
 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta 
name="viewport" content="width=device-width, initial-scale=1.0"><meta 
name="generator" content="rustdoc"><meta name="description" content="Source of 
the Rust file `crates/iceberg/src/spec/name_mapping/mod.rs`."><title>mod.rs - 
source</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium-e1aa3f
 [...]
 <a href="#1" id="1">1</a>
 <a href="#2" id="2">2</a>
 <a href="#3" id="3">3</a>
@@ -305,7 +305,62 @@
 <a href="#304" id="304">304</a>
 <a href="#305" id="305">305</a>
 <a href="#306" id="306">306</a>
-<a href="#307" id="307">307</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
+<a href="#307" id="307">307</a>
+<a href="#308" id="308">308</a>
+<a href="#309" id="309">309</a>
+<a href="#310" id="310">310</a>
+<a href="#311" id="311">311</a>
+<a href="#312" id="312">312</a>
+<a href="#313" id="313">313</a>
+<a href="#314" id="314">314</a>
+<a href="#315" id="315">315</a>
+<a href="#316" id="316">316</a>
+<a href="#317" id="317">317</a>
+<a href="#318" id="318">318</a>
+<a href="#319" id="319">319</a>
+<a href="#320" id="320">320</a>
+<a href="#321" id="321">321</a>
+<a href="#322" id="322">322</a>
+<a href="#323" id="323">323</a>
+<a href="#324" id="324">324</a>
+<a href="#325" id="325">325</a>
+<a href="#326" id="326">326</a>
+<a href="#327" id="327">327</a>
+<a href="#328" id="328">328</a>
+<a href="#329" id="329">329</a>
+<a href="#330" id="330">330</a>
+<a href="#331" id="331">331</a>
+<a href="#332" id="332">332</a>
+<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a></pre></div><pre class="rust"><code><span 
class="comment">// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
 // regarding copyright ownership.  The ASF licenses this file
@@ -324,14 +379,31 @@
 
 </span><span class="doccomment">//! Iceberg name mapping.
 
-</span><span class="kw">use </span>serde::{Deserialize, Serialize};
+</span><span class="kw">use </span>std::sync::Arc;
+
+<span class="kw">use </span>serde::{Deserialize, Serialize};
 <span class="kw">use </span>serde_with::{serde_as, DefaultOnNull};
 
+<span class="doccomment">/// Property name for name mapping.
+</span><span class="kw">pub const </span>DEFAULT_SCHEMA_NAME_MAPPING: <span 
class="kw-2">&amp;</span>str = <span 
class="string">"schema.name-mapping.default"</span>;
+
 <span class="doccomment">/// Iceberg fallback field name to ID mapping.
 </span><span class="attr">#[derive(Debug, Serialize, Deserialize, PartialEq, 
Eq, Clone)]
 #[serde(transparent)]
 </span><span class="kw">pub struct </span>NameMapping {
-    <span class="kw">pub </span>root: Vec&lt;MappedField&gt;,
+    root: Vec&lt;MappedField&gt;,
+}
+
+<span class="kw">impl </span>NameMapping {
+    <span class="doccomment">/// Create a new [`NameMapping`] given a 
collection of mapped fields.
+    </span><span class="kw">pub fn </span>new(fields: Vec&lt;MappedField&gt;) 
-&gt; <span class="self">Self </span>{
+        <span class="self">Self </span>{ root: fields }
+    }
+
+    <span class="doccomment">/// Get a reference to fields which are to be 
mapped from name to field ID.
+    </span><span class="kw">pub fn </span>fields(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="kw-2">&amp;</span>[MappedField] {
+        <span class="kw-2">&amp;</span><span class="self">self</span>.root
+    }
 }
 
 <span class="doccomment">/// Maps field names to IDs.
@@ -340,12 +412,38 @@
 #[serde(rename_all = <span class="string">"kebab-case"</span>)]
 </span><span class="kw">pub struct </span>MappedField {
     <span class="attr">#[serde(skip_serializing_if = <span 
class="string">"Option::is_none"</span>)]
-    </span><span class="kw">pub </span>field_id: <span 
class="prelude-ty">Option</span>&lt;i32&gt;,
-    <span class="kw">pub </span>names: Vec&lt;String&gt;,
+    </span>field_id: <span class="prelude-ty">Option</span>&lt;i32&gt;,
+    names: Vec&lt;String&gt;,
     <span class="attr">#[serde(default)]
     #[serde(skip_serializing_if = <span class="string">"Vec::is_empty"</span>)]
     #[serde_as(deserialize_as = <span class="string">"DefaultOnNull"</span>)]
-    </span><span class="kw">pub </span>fields: Vec&lt;MappedField&gt;,
+    </span>fields: Vec&lt;Arc&lt;MappedField&gt;&gt;,
+}
+
+<span class="kw">impl </span>MappedField {
+    <span class="doccomment">/// Create a new [`MappedField`].
+    </span><span class="kw">pub fn </span>new(field_id: <span 
class="prelude-ty">Option</span>&lt;i32&gt;, names: Vec&lt;String&gt;, fields: 
Vec&lt;MappedField&gt;) -&gt; <span class="self">Self </span>{
+        <span class="self">Self </span>{
+            field_id,
+            names,
+            fields: fields.into_iter().map(Arc::new).collect(),
+        }
+    }
+
+    <span class="doccomment">/// Iceberg field ID when a field's name is 
present within `names`.
+    </span><span class="kw">pub fn </span>field_id(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="prelude-ty">Option</span>&lt;i32&gt; {
+        <span class="self">self</span>.field_id
+    }
+
+    <span class="doccomment">/// Get a reference to names for a mapped field.
+    </span><span class="kw">pub fn </span>names(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="kw-2">&amp;</span>[String] {
+        <span class="kw-2">&amp;</span><span class="self">self</span>.names
+    }
+
+    <span class="doccomment">/// Get a reference to the field mapping for any 
child fields.
+    </span><span class="kw">pub fn </span>fields(<span 
class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span 
class="kw-2">&amp;</span>[Arc&lt;MappedField&gt;] {
+        <span class="kw-2">&amp;</span><span class="self">self</span>.fields
+    }
 }
 
 <span class="attr">#[cfg(test)]
@@ -503,15 +601,17 @@
                             field_id: <span 
class="prelude-val">Some</span>(<span class="number">4</span>),
                             names: <span class="macro">vec!</span>[<span 
class="string">"latitude"</span>.to_string(), <span 
class="string">"lat"</span>.to_string()],
                             fields: <span class="macro">vec!</span>[]
-                        },
+                        }
+                        .into(),
                         MappedField {
                             field_id: <span 
class="prelude-val">Some</span>(<span class="number">5</span>),
                             names: <span class="macro">vec!</span>[<span 
class="string">"longitude"</span>.to_string(), <span 
class="string">"long"</span>.to_string()],
                             fields: <span class="macro">vec!</span>[]
-                        },
+                        }
+                        .into(),
                     ]
                 }
-            ]
+            ],
         });
     }
 
@@ -541,7 +641,8 @@
                         field_id: <span class="prelude-val">Some</span>(<span 
class="number">5</span>),
                         names: <span class="macro">vec!</span>[<span 
class="string">"element"</span>.to_string()],
                         fields: <span class="macro">vec!</span>[],
-                    }],
+                    }
+                    .into()],
                 },
                 MappedField {
                     field_id: <span class="prelude-val">Some</span>(<span 
class="number">6</span>),
@@ -551,7 +652,8 @@
                             field_id: <span 
class="prelude-val">Some</span>(<span class="number">7</span>),
                             names: <span class="macro">vec!</span>[<span 
class="string">"key"</span>.to_string()],
                             fields: <span class="macro">vec!</span>[],
-                        },
+                        }
+                        .into(),
                         MappedField {
                             field_id: <span 
class="prelude-val">Some</span>(<span class="number">8</span>),
                             names: <span class="macro">vec!</span>[<span 
class="string">"value"</span>.to_string()],
@@ -560,14 +662,17 @@
                                     field_id: <span 
class="prelude-val">Some</span>(<span class="number">9</span>),
                                     names: <span 
class="macro">vec!</span>[<span class="string">"key"</span>.to_string()],
                                     fields: <span class="macro">vec!</span>[],
-                                },
+                                }
+                                .into(),
                                 MappedField {
                                     field_id: <span 
class="prelude-val">Some</span>(<span class="number">10</span>),
                                     names: <span 
class="macro">vec!</span>[<span class="string">"value"</span>.to_string()],
                                     fields: <span class="macro">vec!</span>[],
-                                },
+                                }
+                                .into(),
                             ],
-                        },
+                        }
+                        .into(),
                     ],
                 },
                 MappedField {
@@ -581,14 +686,17 @@
                                 field_id: <span 
class="prelude-val">Some</span>(<span class="number">13</span>),
                                 names: <span class="macro">vec!</span>[<span 
class="string">"latitude"</span>.to_string()],
                                 fields: <span class="macro">vec!</span>[],
-                            },
+                            }
+                            .into(),
                             MappedField {
                                 field_id: <span 
class="prelude-val">Some</span>(<span class="number">14</span>),
                                 names: <span class="macro">vec!</span>[<span 
class="string">"longitude"</span>.to_string()],
                                 fields: <span class="macro">vec!</span>[],
-                            },
+                            }
+                            .into(),
                         ],
-                    }],
+                    }
+                    .into()],
                 },
                 MappedField {
                     field_id: <span class="prelude-val">Some</span>(<span 
class="number">15</span>),
@@ -598,12 +706,14 @@
                             field_id: <span 
class="prelude-val">Some</span>(<span class="number">16</span>),
                             names: <span class="macro">vec!</span>[<span 
class="string">"name"</span>.to_string()],
                             fields: <span class="macro">vec!</span>[],
-                        },
+                        }
+                        .into(),
                         MappedField {
                             field_id: <span 
class="prelude-val">Some</span>(<span class="number">17</span>),
                             names: <span class="macro">vec!</span>[<span 
class="string">"age"</span>.to_string()],
                             fields: <span class="macro">vec!</span>[],
-                        },
+                        }
+                        .into(),
                     ],
                 },
             ],
diff --git a/api/trait.impl/core/clone/trait.Clone.js 
b/api/trait.impl/core/clone/trait.Clone.js
index 1d17c747..5c275879 100644
--- a/api/trait.impl/core/clone/trait.Clone.js
+++ b/api/trait.impl/core/clone/trait.Clone.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\"; 
title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\"; 
title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" 
href=\"iceberg/enum.Ta [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\"; 
title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\"; 
title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" 
href=\"iceberg/enum.Ta [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[27052,334,337]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[27600,334,337]}
\ No newline at end of file
diff --git a/api/trait.impl/core/cmp/trait.Eq.js 
b/api/trait.impl/core/cmp/trait.Eq.js
index 3aedafa5..9c8a41aa 100644
--- a/api/trait.impl/core/cmp/trait.Eq.js
+++ b/api/trait.impl/core/cmp/trait.Eq.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\"; title=\"trait 
core::cmp::Eq\">Eq</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\"; title=\"trait 
core::cmp::Eq\">Eq</a> for <a class=\"enum\" 
href=\"iceberg/puffin/enum.CompressionCodec.html [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\"; title=\"trait 
core::cmp::Eq\">Eq</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html\"; title=\"trait 
core::cmp::Eq\">Eq</a> for <a class=\"enum\" 
href=\"iceberg/puffin/enum.CompressionCodec.html [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[15218]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[15740]}
\ No newline at end of file
diff --git a/api/trait.impl/core/cmp/trait.PartialEq.js 
b/api/trait.impl/core/cmp/trait.PartialEq.js
index a83af97b..4153d96e 100644
--- a/api/trait.impl/core/cmp/trait.PartialEq.js
+++ b/api/trait.impl/core/cmp/trait.PartialEq.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\"; 
title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\"; 
title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" href=\ 
[...]
+    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\"; 
title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html\"; 
title=\"trait core::cmp::PartialEq\">PartialEq</a> for <a class=\"enum\" href=\ 
[...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[21518,318]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[22082,318]}
\ No newline at end of file
diff --git a/api/trait.impl/core/fmt/trait.Debug.js 
b/api/trait.impl/core/fmt/trait.Debug.js
index 28a6bb35..4db29e8f 100644
--- a/api/trait.impl/core/fmt/trait.Debug.js
+++ b/api/trait.impl/core/fmt/trait.Debug.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\"; 
title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\"; 
title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" 
href=\"iceberg/enum.TableRequi [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\"; 
title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html\"; 
title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"enum\" 
href=\"iceberg/enum.TableRequi [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[32061,615,902,324,615,659,884,306,1023,327]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[32601,615,902,324,615,659,884,306,1023,327]}
\ No newline at end of file
diff --git a/api/trait.impl/core/marker/trait.Freeze.js 
b/api/trait.impl/core/marker/trait.Freeze.js
index 688f41b6..87750c2c 100644
--- a/api/trait.impl/core/marker/trait.Freeze.js
+++ b/api/trait.impl/core/marker/trait.Freeze.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl !<a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"enum\" 
href=\"iceberg/enum.TableUpdate.html\" title=\"enum 
iceberg::TableUpdate\">TableUpdate</a>",1,["iceberg::catalog::TableUpdate"]],["impl
 !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">F [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl !<a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">Freeze</a> for <a class=\"enum\" 
href=\"iceberg/enum.TableUpdate.html\" title=\"enum 
iceberg::TableUpdate\">TableUpdate</a>",1,["iceberg::catalog::TableUpdate"]],["impl
 !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html\"; 
title=\"trait core::marker::Freeze\">F [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[43558,401,737,1084,387,738,797,1060,362,1247,381,384]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[44210,401,737,1084,387,738,797,1060,362,1247,381,384]}
\ No newline at end of file
diff --git a/api/trait.impl/core/marker/trait.Send.js 
b/api/trait.impl/core/marker/trait.Send.js
index e53b0620..b1e8a6ef 100644
--- a/api/trait.impl/core/marker/trait.Send.js
+++ b/api/trait.impl/core/marker/trait.Send.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>",1,["iceberg::error::ErrorKind"]],["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\ [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>",1,["iceberg::error::ErrorKind"]],["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Send.html\"; 
title=\"trait core::marker::Send\">Send</a> for <a class=\ [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[41021,395,725,1066,380,725,785,1042,356,1229,375,378]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[41661,395,725,1066,380,725,785,1042,356,1229,375,378]}
\ No newline at end of file
diff --git a/api/trait.impl/core/marker/trait.StructuralPartialEq.js 
b/api/trait.impl/core/marker/trait.StructuralPartialEq.js
index 94204f8d..44ab591f 100644
--- a/api/trait.impl/core/marker/trait.StructuralPartialEq.js
+++ b/api/trait.impl/core/marker/trait.StructuralPartialEq.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\";
 title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for 
<a class=\"enum\" href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\";
 title=\"trait core::marker::St [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\";
 title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for 
<a class=\"enum\" href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html\";
 title=\"trait core::marker::St [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[22952,354]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[23588,354]}
\ No newline at end of file
diff --git a/api/trait.impl/core/marker/trait.Sync.js 
b/api/trait.impl/core/marker/trait.Sync.js
index be9f9aca..b566474f 100644
--- a/api/trait.impl/core/marker/trait.Sync.js
+++ b/api/trait.impl/core/marker/trait.Sync.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl !<a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" 
href=\"iceberg/puffin/struct.PuffinWriter.html\" title=\"struct 
iceberg::puffin::PuffinWriter\">PuffinWriter</a>",1,["iceberg::puffin::writer::PuffinWriter"]],["impl
 !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait  [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl !<a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" 
href=\"iceberg/puffin/struct.PuffinWriter.html\" title=\"struct 
iceberg::puffin::PuffinWriter\">PuffinWriter</a>",1,["iceberg::puffin::writer::PuffinWriter"]],["impl
 !<a class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html\"; 
title=\"trait  [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[42944,395,725,1066,380,725,785,1042,356,1229,375,378]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[43584,395,725,1066,380,725,785,1042,356,1229,375,378]}
\ No newline at end of file
diff --git a/api/trait.impl/core/marker/trait.Unpin.js 
b/api/trait.impl/core/marker/trait.Unpin.js
index f7a30c81..b18da618 100644
--- a/api/trait.impl/core/marker/trait.Unpin.js
+++ b/api/trait.impl/core/marker/trait.Unpin.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>",1,["iceberg::error::ErrorKind"]],["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a c [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a class=\"enum\" 
href=\"iceberg/enum.ErrorKind.html\" title=\"enum 
iceberg::ErrorKind\">ErrorKind</a>",1,["iceberg::error::ErrorKind"]],["impl <a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html\"; 
title=\"trait core::marker::Unpin\">Unpin</a> for <a c [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[42979,398,731,1075,383,731,791,1051,359,1238,378,381]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[43625,398,731,1075,383,731,791,1051,359,1238,378,381]}
\ No newline at end of file
diff --git a/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js 
b/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js
index ed987a61..cd971e1f 100644
--- a/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js
+++ b/api/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl !<a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for 
<a class=\"struct\" href=\"iceberg/arrow/struct.ArrowReader.html\" 
title=\"struct 
iceberg::arrow::ArrowReader\">ArrowReader</a>",1,["iceberg::arrow::reader::ArrowReader"]],["impl
 !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/c [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl !<a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::RefUnwindSafe\">RefUnwindSafe</a> for 
<a class=\"struct\" href=\"iceberg/arrow/struct.ArrowReader.html\" 
title=\"struct 
iceberg::arrow::ArrowReader\">ArrowReader</a>",1,["iceberg::arrow::reader::ArrowReader"]],["impl
 !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/c [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[49095,446,826,1217,431,827,886,1194,407,1381,426,428]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[49835,446,826,1217,431,827,886,1194,407,1381,426,428]}
\ No newline at end of file
diff --git a/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js 
b/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js
index 055955c8..baef3fa7 100644
--- a/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js
+++ b/api/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl !<a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a 
class=\"struct\" href=\"iceberg/arrow/struct.ArrowReader.html\" title=\"struct 
iceberg::arrow::ArrowReader\">ArrowReader</a>",1,["iceberg::arrow::reader::ArrowReader"]],["impl
 !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl !<a 
class=\"trait\" 
href=\"https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html\";
 title=\"trait core::panic::unwind_safe::UnwindSafe\">UnwindSafe</a> for <a 
class=\"struct\" href=\"iceberg/arrow/struct.ArrowReader.html\" title=\"struct 
iceberg::arrow::ArrowReader\">ArrowReader</a>",1,["iceberg::arrow::reader::ArrowReader"]],["impl
 !<a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/panic [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[47934,437,808,1190,422,809,868,1167,398,1354,417,419]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[48656,437,808,1190,422,809,868,1167,398,1354,417,419]}
\ No newline at end of file
diff --git a/api/trait.impl/serde/de/trait.Deserialize.js 
b/api/trait.impl/serde/de/trait.Deserialize.js
index 47e2ef57..fe9e5b6c 100644
--- a/api/trait.impl/serde/de/trait.Deserialize.js
+++ b/api/trait.impl/serde/de/trait.Deserialize.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl&lt;'de&gt; <a 
class=\"trait\" 
href=\"https://docs.rs/serde/1.0.217/serde/de/trait.Deserialize.html\"; 
title=\"trait serde::de::Deserialize\">Deserialize</a>&lt;'de&gt; for <a 
class=\"enum\" href=\"iceberg/enum.TableRequirement.html\" title=\"enum 
iceberg::TableRequirement\">TableRequirement</a>"],["impl&lt;'de&gt; <a 
class=\"trait\" 
href=\"https://docs.rs/serde/1.0.217/serde/de/trait.Deserialize.html\"; 
title=\"trait serde::de:: [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl&lt;'de&gt; <a 
class=\"trait\" 
href=\"https://docs.rs/serde/1.0.217/serde/de/trait.Deserialize.html\"; 
title=\"trait serde::de::Deserialize\">Deserialize</a>&lt;'de&gt; for <a 
class=\"enum\" href=\"iceberg/enum.TableRequirement.html\" title=\"enum 
iceberg::TableRequirement\">TableRequirement</a>"],["impl&lt;'de&gt; <a 
class=\"trait\" 
href=\"https://docs.rs/serde/1.0.217/serde/de/trait.Deserialize.html\"; 
title=\"trait serde::de:: [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[18650]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[19262]}
\ No newline at end of file
diff --git a/api/trait.impl/serde/ser/trait.Serialize.js 
b/api/trait.impl/serde/ser/trait.Serialize.js
index 6ab16b3a..8eb30370 100644
--- a/api/trait.impl/serde/ser/trait.Serialize.js
+++ b/api/trait.impl/serde/ser/trait.Serialize.js
@@ -1,9 +1,9 @@
 (function() {
-    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html\"; 
title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" 
href=\"iceberg/enum.TableRequirement.html\" title=\"enum 
iceberg::TableRequirement\">TableRequirement</a>"],["impl <a class=\"trait\" 
href=\"https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html\"; 
title=\"trait serde::ser::Serialize\">Serialize</a> for <a clas [...]
+    var implementors = Object.fromEntries([["iceberg",[["impl <a 
class=\"trait\" 
href=\"https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html\"; 
title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"enum\" 
href=\"iceberg/enum.TableRequirement.html\" title=\"enum 
iceberg::TableRequirement\">TableRequirement</a>"],["impl <a class=\"trait\" 
href=\"https://docs.rs/serde/1.0.217/serde/ser/trait.Serialize.html\"; 
title=\"trait serde::ser::Serialize\">Serialize</a> for <a clas [...]
     if (window.register_implementors) {
         window.register_implementors(implementors);
     } else {
         window.pending_implementors = implementors;
     }
 })()
-//{"start":57,"fragment_lengths":[16676]}
\ No newline at end of file
+//{"start":57,"fragment_lengths":[17236]}
\ No newline at end of file


Reply via email to