This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git


The following commit(s) were added to refs/heads/main by this push:
     new 081a36dd3 refactor(spec)!: accept impl Into<Type> in NestedField 
constructors (#3527)
081a36dd3 is described below

commit 081a36dd311f4098a9a19847abedfa05f7af2e8f
Author: Danny C Jones <[email protected]>
AuthorDate: Mon Oct 26 23:50:52 2026 +0000

    refactor(spec)!: accept impl Into<Type> in NestedField constructors (#3527)
---
 crates/iceberg/public-api.txt         |  16 +--
 crates/iceberg/src/avro/schema.rs     | 178 ++++++++++++----------------------
 crates/iceberg/src/expr/term.rs       |   4 +-
 crates/iceberg/src/scan/mod.rs        |  12 +--
 crates/iceberg/src/spec/datatypes.rs  |  28 ++++--
 crates/iceberg/src/spec/partition.rs  |  22 ++---
 crates/iceberg/src/test_utils/scan.rs |   8 +-
 7 files changed, 110 insertions(+), 158 deletions(-)

diff --git a/crates/iceberg/public-api.txt b/crates/iceberg/public-api.txt
index 5f87d9881..701cb7f95 100644
--- a/crates/iceberg/public-api.txt
+++ b/crates/iceberg/public-api.txt
@@ -2411,8 +2411,8 @@ pub iceberg::spec::MapType::key_field: 
iceberg::spec::NestedFieldRef
 pub iceberg::spec::MapType::value_field: iceberg::spec::NestedFieldRef
 impl iceberg::spec::MapType
 pub fn iceberg::spec::MapType::new(key_field: iceberg::spec::NestedFieldRef, 
value_field: iceberg::spec::NestedFieldRef) -> Self
-pub fn iceberg::spec::MapType::optional(key_id: i32, key_type: 
iceberg::spec::Type, value_id: i32, value_type: iceberg::spec::Type) -> Self
-pub fn iceberg::spec::MapType::required(key_id: i32, key_type: 
iceberg::spec::Type, value_id: i32, value_type: iceberg::spec::Type) -> Self
+pub fn iceberg::spec::MapType::optional(key_id: i32, key_type: impl 
core::convert::Into<iceberg::spec::Type>, value_id: i32, value_type: impl 
core::convert::Into<iceberg::spec::Type>) -> Self
+pub fn iceberg::spec::MapType::required(key_id: i32, key_type: impl 
core::convert::Into<iceberg::spec::Type>, value_id: i32, value_type: impl 
core::convert::Into<iceberg::spec::Type>) -> Self
 impl core::clone::Clone for iceberg::spec::MapType
 pub fn iceberg::spec::MapType::clone(&self) -> iceberg::spec::MapType
 impl core::cmp::Eq for iceberg::spec::MapType
@@ -2484,12 +2484,12 @@ pub iceberg::spec::NestedField::name: 
alloc::string::String
 pub iceberg::spec::NestedField::required: bool
 pub iceberg::spec::NestedField::write_default: 
core::option::Option<iceberg::spec::Literal>
 impl iceberg::spec::NestedField
-pub fn iceberg::spec::NestedField::list_element(id: i32, field_type: 
iceberg::spec::Type, required: bool) -> Self
-pub fn iceberg::spec::NestedField::map_key_element(id: i32, field_type: 
iceberg::spec::Type) -> Self
-pub fn iceberg::spec::NestedField::map_value_element(id: i32, field_type: 
iceberg::spec::Type, required: bool) -> Self
-pub fn iceberg::spec::NestedField::new(id: i32, name: impl 
alloc::string::ToString, field_type: iceberg::spec::Type, required: bool) -> 
Self
-pub fn iceberg::spec::NestedField::optional(id: i32, name: impl 
alloc::string::ToString, field_type: iceberg::spec::Type) -> Self
-pub fn iceberg::spec::NestedField::required(id: i32, name: impl 
alloc::string::ToString, field_type: iceberg::spec::Type) -> Self
+pub fn iceberg::spec::NestedField::list_element(id: i32, field_type: impl 
core::convert::Into<iceberg::spec::Type>, required: bool) -> Self
+pub fn iceberg::spec::NestedField::map_key_element(id: i32, field_type: impl 
core::convert::Into<iceberg::spec::Type>) -> Self
+pub fn iceberg::spec::NestedField::map_value_element(id: i32, field_type: impl 
core::convert::Into<iceberg::spec::Type>, required: bool) -> Self
+pub fn iceberg::spec::NestedField::new(id: i32, name: impl 
alloc::string::ToString, field_type: impl 
core::convert::Into<iceberg::spec::Type>, required: bool) -> Self
+pub fn iceberg::spec::NestedField::optional(id: i32, name: impl 
alloc::string::ToString, field_type: impl 
core::convert::Into<iceberg::spec::Type>) -> Self
+pub fn iceberg::spec::NestedField::required(id: i32, name: impl 
alloc::string::ToString, field_type: impl 
core::convert::Into<iceberg::spec::Type>) -> Self
 pub fn iceberg::spec::NestedField::with_doc(self, doc: impl 
alloc::string::ToString) -> Self
 pub fn iceberg::spec::NestedField::with_initial_default(self, value: 
iceberg::spec::Literal) -> Self
 pub fn iceberg::spec::NestedField::with_write_default(self, value: 
iceberg::spec::Literal) -> Self
diff --git a/crates/iceberg/src/avro/schema.rs 
b/crates/iceberg/src/avro/schema.rs
index 8bdd67c50..9af68022a 100644
--- a/crates/iceberg/src/avro/schema.rs
+++ b/crates/iceberg/src/avro/schema.rs
@@ -695,12 +695,12 @@ mod tests {
     fn test_unknown_type_schema_conversion() {
         let schema = Schema::builder()
             .with_fields(vec![
-                NestedField::optional(1, "empty", 
PrimitiveType::Unknown.into()).into(),
+                NestedField::optional(1, "empty", 
PrimitiveType::Unknown).into(),
                 NestedField::required(
                     2,
                     "unknowns",
                     Type::List(ListType::new(
-                        NestedField::list_element(3, 
PrimitiveType::Unknown.into(), false).into(),
+                        NestedField::list_element(3, PrimitiveType::Unknown, 
false).into(),
                     )),
                 )
                 .into(),
@@ -709,9 +709,9 @@ mod tests {
                     "unknown_values",
                     Type::Map(MapType::optional(
                         5,
-                        PrimitiveType::String.into(),
+                        PrimitiveType::String,
                         6,
-                        PrimitiveType::Unknown.into(),
+                        PrimitiveType::Unknown,
                     )),
                 )
                 .into(),
@@ -740,71 +740,57 @@ mod tests {
     #[test]
     fn test_manifest_file_v1_schema() {
         let fields = vec![
-            NestedField::required(500, "manifest_path", 
PrimitiveType::String.into())
+            NestedField::required(500, "manifest_path", PrimitiveType::String)
                 .with_doc("Location URI with FS scheme")
                 .into(),
-            NestedField::required(501, "manifest_length", 
PrimitiveType::Long.into())
+            NestedField::required(501, "manifest_length", PrimitiveType::Long)
                 .with_doc("Total file size in bytes")
                 .into(),
-            NestedField::required(502, "partition_spec_id", 
PrimitiveType::Int.into())
+            NestedField::required(502, "partition_spec_id", PrimitiveType::Int)
                 .with_doc("Spec ID used to write")
                 .into(),
-            NestedField::optional(503, "added_snapshot_id", 
PrimitiveType::Long.into())
+            NestedField::optional(503, "added_snapshot_id", 
PrimitiveType::Long)
                 .with_doc("Snapshot ID that added the manifest")
                 .into(),
-            NestedField::optional(504, "added_data_files_count", 
PrimitiveType::Int.into())
+            NestedField::optional(504, "added_data_files_count", 
PrimitiveType::Int)
                 .with_doc("Added entry count")
                 .into(),
-            NestedField::optional(505, "existing_data_files_count", 
PrimitiveType::Int.into())
+            NestedField::optional(505, "existing_data_files_count", 
PrimitiveType::Int)
                 .with_doc("Existing entry count")
                 .into(),
-            NestedField::optional(506, "deleted_data_files_count", 
PrimitiveType::Int.into())
+            NestedField::optional(506, "deleted_data_files_count", 
PrimitiveType::Int)
                 .with_doc("Deleted entry count")
                 .into(),
-            NestedField::optional(
-                507,
-                "partitions",
-                ListType {
-                    element_field: NestedField::list_element(
-                        508,
-                        StructType::new(vec![
-                            NestedField::required(
-                                509,
-                                "contains_null",
-                                PrimitiveType::Boolean.into(),
-                            )
+            NestedField::optional(507, "partitions", ListType {
+                element_field: NestedField::list_element(
+                    508,
+                    StructType::new(vec![
+                        NestedField::required(509, "contains_null", 
PrimitiveType::Boolean)
                             .with_doc("True if any file has a null partition 
value")
                             .into(),
-                            NestedField::optional(
-                                518,
-                                "contains_nan",
-                                PrimitiveType::Boolean.into(),
-                            )
+                        NestedField::optional(518, "contains_nan", 
PrimitiveType::Boolean)
                             .with_doc("True if any file has a nan partition 
value")
                             .into(),
-                            NestedField::optional(510, "lower_bound", 
PrimitiveType::Binary.into())
-                                .with_doc("Partition lower bound for all 
files")
-                                .into(),
-                            NestedField::optional(511, "upper_bound", 
PrimitiveType::Binary.into())
-                                .with_doc("Partition upper bound for all 
files")
-                                .into(),
-                        ])
-                        .into(),
-                        true,
-                    )
-                    .into(),
-                }
+                        NestedField::optional(510, "lower_bound", 
PrimitiveType::Binary)
+                            .with_doc("Partition lower bound for all files")
+                            .into(),
+                        NestedField::optional(511, "upper_bound", 
PrimitiveType::Binary)
+                            .with_doc("Partition upper bound for all files")
+                            .into(),
+                    ]),
+                    true,
+                )
                 .into(),
-            )
+            })
             .with_doc("Summary for each partition")
             .into(),
-            NestedField::optional(512, "added_rows_count", 
PrimitiveType::Long.into())
+            NestedField::optional(512, "added_rows_count", PrimitiveType::Long)
                 .with_doc("Added rows count")
                 .into(),
-            NestedField::optional(513, "existing_rows_count", 
PrimitiveType::Long.into())
+            NestedField::optional(513, "existing_rows_count", 
PrimitiveType::Long)
                 .with_doc("Existing rows count")
                 .into(),
-            NestedField::optional(514, "deleted_rows_count", 
PrimitiveType::Long.into())
+            NestedField::optional(514, "deleted_rows_count", 
PrimitiveType::Long)
                 .with_doc("Deleted rows count")
                 .into(),
         ];
@@ -844,19 +830,10 @@ mod tests {
         let iceberg_schema = {
             Schema::builder()
                 .with_fields(vec![
-                    NestedField::required(
-                        100,
-                        "array_with_string",
-                        ListType {
-                            element_field: NestedField::list_element(
-                                101,
-                                PrimitiveType::String.into(),
-                                true,
-                            )
+                    NestedField::required(100, "array_with_string", ListType {
+                        element_field: NestedField::list_element(101, 
PrimitiveType::String, true)
                             .into(),
-                        }
-                        .into(),
-                    )
+                    })
                     .into(),
                 ])
                 .build()
@@ -895,19 +872,10 @@ mod tests {
         let iceberg_schema = {
             Schema::builder()
                 .with_fields(vec![
-                    NestedField::required(
-                        100,
-                        "array_with_string",
-                        ListType {
-                            element_field: NestedField::list_element(
-                                101,
-                                PrimitiveType::String.into(),
-                                true,
-                            )
+                    NestedField::required(100, "array_with_string", ListType {
+                        element_field: NestedField::list_element(101, 
PrimitiveType::String, true)
                             .into(),
-                        }
-                        .into(),
-                    )
+                    })
                     .into(),
                 ])
                 .build()
@@ -960,33 +928,19 @@ mod tests {
         let iceberg_schema = {
             Schema::builder()
                 .with_fields(vec![
-                    NestedField::required(
-                        100,
-                        "array_with_record",
-                        ListType {
-                            element_field: NestedField::list_element(
-                                101,
-                                StructType::new(vec![
-                                    NestedField::required(
-                                        102,
-                                        "contains_null",
-                                        PrimitiveType::Boolean.into(),
-                                    )
+                    NestedField::required(100, "array_with_record", ListType {
+                        element_field: NestedField::list_element(
+                            101,
+                            StructType::new(vec![
+                                NestedField::required(102, "contains_null", 
PrimitiveType::Boolean)
                                     .into(),
-                                    NestedField::optional(
-                                        103,
-                                        "contains_nan",
-                                        PrimitiveType::Boolean.into(),
-                                    )
+                                NestedField::optional(103, "contains_nan", 
PrimitiveType::Boolean)
                                     .into(),
-                                ])
-                                .into(),
-                                true,
-                            )
-                            .into(),
-                        }
+                            ]),
+                            true,
+                        )
                         .into(),
-                    )
+                    })
                     .into(),
                 ])
                 .build()
@@ -1017,8 +971,7 @@ mod tests {
                     4,
                     "map",
                     Type::Map(MapType {
-                        key_field: NestedField::map_key_element(5, 
PrimitiveType::Int.into())
-                            .into(),
+                        key_field: NestedField::map_key_element(5, 
PrimitiveType::Int).into(),
                         value_field: NestedField::map_value_element(6, 
decimal, false).into(),
                     }),
                 )
@@ -1042,11 +995,10 @@ mod tests {
         // in code, which keeps `logicalType: map` in apache-avro 0.22.
         let map = |key_id, value_id, value_required| {
             Type::Map(MapType {
-                key_field: NestedField::map_key_element(key_id, 
PrimitiveType::Boolean.into())
-                    .into(),
+                key_field: NestedField::map_key_element(key_id, 
PrimitiveType::Boolean).into(),
                 value_field: NestedField::map_value_element(
                     value_id,
-                    PrimitiveType::Boolean.into(),
+                    PrimitiveType::Boolean,
                     value_required,
                 )
                 .into(),
@@ -1151,14 +1103,11 @@ mod tests {
                         100,
                         "optional",
                         Type::Map(MapType {
-                            key_field: NestedField::map_key_element(
-                                102,
-                                PrimitiveType::Boolean.into(),
-                            )
-                            .into(),
+                            key_field: NestedField::map_key_element(102, 
PrimitiveType::Boolean)
+                                .into(),
                             value_field: NestedField::map_value_element(
                                 103,
-                                PrimitiveType::Boolean.into(),
+                                PrimitiveType::Boolean,
                                 false,
                             )
                             .into(),
@@ -1168,14 +1117,11 @@ mod tests {
                         104,
                         "required",
                         Type::Map(MapType {
-                            key_field: NestedField::map_key_element(
-                                105,
-                                PrimitiveType::Boolean.into(),
-                            )
-                            .into(),
+                            key_field: NestedField::map_key_element(105, 
PrimitiveType::Boolean)
+                                .into(),
                             value_field: NestedField::map_value_element(
                                 106,
-                                PrimitiveType::Boolean.into(),
+                                PrimitiveType::Boolean,
                                 true,
                             )
                             .into(),
@@ -1185,14 +1131,11 @@ mod tests {
                         107,
                         "string_map",
                         Type::Map(MapType {
-                            key_field: NestedField::map_key_element(
-                                108,
-                                PrimitiveType::String.into(),
-                            )
-                            .into(),
+                            key_field: NestedField::map_key_element(108, 
PrimitiveType::String)
+                                .into(),
                             value_field: NestedField::map_value_element(
                                 109,
-                                PrimitiveType::Long.into(),
+                                PrimitiveType::Long,
                                 false,
                             )
                             .into(),
@@ -1258,9 +1201,8 @@ mod tests {
 
         let mut converter = AvroSchemaToSchema;
         let iceberg_type = Type::Map(MapType {
-            key_field: NestedField::map_key_element(101, 
PrimitiveType::String.into()).into(),
-            value_field: NestedField::map_value_element(102, 
PrimitiveType::Long.into(), false)
-                .into(),
+            key_field: NestedField::map_key_element(101, 
PrimitiveType::String).into(),
+            value_field: NestedField::map_value_element(102, 
PrimitiveType::Long, false).into(),
         });
 
         assert_eq!(
diff --git a/crates/iceberg/src/expr/term.rs b/crates/iceberg/src/expr/term.rs
index 7c5cc0891..41970e1ef 100644
--- a/crates/iceberg/src/expr/term.rs
+++ b/crates/iceberg/src/expr/term.rs
@@ -433,8 +433,8 @@ mod tests {
         let schema = Arc::new(
             Schema::builder()
                 .with_fields(vec![
-                    NestedField::optional(1, "id", 
PrimitiveType::Int.into()).into(),
-                    NestedField::optional(2, "ID", 
PrimitiveType::Int.into()).into(),
+                    NestedField::optional(1, "id", PrimitiveType::Int).into(),
+                    NestedField::optional(2, "ID", PrimitiveType::Int).into(),
                 ])
                 .build()
                 .unwrap(),
diff --git a/crates/iceberg/src/scan/mod.rs b/crates/iceberg/src/scan/mod.rs
index cb77abeb7..636abb4d7 100644
--- a/crates/iceberg/src/scan/mod.rs
+++ b/crates/iceberg/src/scan/mod.rs
@@ -837,9 +837,9 @@ mod tests {
     fn test_resolve_field_id_case_insensitive_rejects_ambiguous_name() {
         let schema = Schema::builder()
             .with_fields(vec![
-                NestedField::optional(1, "id", 
PrimitiveType::Int.into()).into(),
-                NestedField::optional(2, "ID", 
PrimitiveType::Int.into()).into(),
-                NestedField::optional(3, "data", 
PrimitiveType::Int.into()).into(),
+                NestedField::optional(1, "id", PrimitiveType::Int).into(),
+                NestedField::optional(2, "ID", PrimitiveType::Int).into(),
+                NestedField::optional(3, "data", PrimitiveType::Int).into(),
             ])
             .build()
             .unwrap();
@@ -858,9 +858,9 @@ mod tests {
         let schema = Schema::builder()
             .with_schema_id(metadata.current_schema_id())
             .with_fields(vec![
-                NestedField::optional(1, "id", 
PrimitiveType::Int.into()).into(),
-                NestedField::optional(2, "ID", 
PrimitiveType::Int.into()).into(),
-                NestedField::optional(3, "data", 
PrimitiveType::Int.into()).into(),
+                NestedField::optional(1, "id", PrimitiveType::Int).into(),
+                NestedField::optional(2, "ID", PrimitiveType::Int).into(),
+                NestedField::optional(3, "data", PrimitiveType::Int).into(),
             ])
             .build()
             .unwrap();
diff --git a/crates/iceberg/src/spec/datatypes.rs 
b/crates/iceberg/src/spec/datatypes.rs
index a5ea6ee87..1345cac2a 100644
--- a/crates/iceberg/src/spec/datatypes.rs
+++ b/crates/iceberg/src/spec/datatypes.rs
@@ -696,12 +696,12 @@ pub type NestedFieldRef = Arc<NestedField>;
 
 impl NestedField {
     /// Construct a new field.
-    pub fn new(id: i32, name: impl ToString, field_type: Type, required: bool) 
-> Self {
+    pub fn new(id: i32, name: impl ToString, field_type: impl Into<Type>, 
required: bool) -> Self {
         Self {
             id,
             name: name.to_string(),
             required,
-            field_type: Box::new(field_type),
+            field_type: Box::new(field_type.into()),
             doc: None,
             initial_default: None,
             write_default: None,
@@ -709,27 +709,27 @@ impl NestedField {
     }
 
     /// Construct a required field.
-    pub fn required(id: i32, name: impl ToString, field_type: Type) -> Self {
+    pub fn required(id: i32, name: impl ToString, field_type: impl Into<Type>) 
-> Self {
         Self::new(id, name, field_type, true)
     }
 
     /// Construct an optional field.
-    pub fn optional(id: i32, name: impl ToString, field_type: Type) -> Self {
+    pub fn optional(id: i32, name: impl ToString, field_type: impl Into<Type>) 
-> Self {
         Self::new(id, name, field_type, false)
     }
 
     /// Construct list type's element field.
-    pub fn list_element(id: i32, field_type: Type, required: bool) -> Self {
+    pub fn list_element(id: i32, field_type: impl Into<Type>, required: bool) 
-> Self {
         Self::new(id, LIST_FIELD_NAME, field_type, required)
     }
 
     /// Construct map type's key field.
-    pub fn map_key_element(id: i32, field_type: Type) -> Self {
+    pub fn map_key_element(id: i32, field_type: impl Into<Type>) -> Self {
         Self::required(id, MAP_KEY_FIELD_NAME, field_type)
     }
 
     /// Construct map type's value field.
-    pub fn map_value_element(id: i32, field_type: Type, required: bool) -> 
Self {
+    pub fn map_value_element(id: i32, field_type: impl Into<Type>, required: 
bool) -> Self {
         Self::new(id, MAP_VALUE_FIELD_NAME, field_type, required)
     }
 
@@ -921,7 +921,12 @@ impl MapType {
     }
 
     /// Construct an optional map type with the given key and value fields.
-    pub fn optional(key_id: i32, key_type: Type, value_id: i32, value_type: 
Type) -> Self {
+    pub fn optional(
+        key_id: i32,
+        key_type: impl Into<Type>,
+        value_id: i32,
+        value_type: impl Into<Type>,
+    ) -> Self {
         Self {
             key_field: NestedField::map_key_element(key_id, key_type).into(),
             value_field: NestedField::map_value_element(value_id, value_type, 
false).into(),
@@ -929,7 +934,12 @@ impl MapType {
     }
 
     /// Construct a required map type with the given key and value fields.
-    pub fn required(key_id: i32, key_type: Type, value_id: i32, value_type: 
Type) -> Self {
+    pub fn required(
+        key_id: i32,
+        key_type: impl Into<Type>,
+        value_id: i32,
+        value_type: impl Into<Type>,
+    ) -> Self {
         Self {
             key_field: NestedField::map_key_element(key_id, key_type).into(),
             value_field: NestedField::map_value_element(value_id, value_type, 
true).into(),
diff --git a/crates/iceberg/src/spec/partition.rs 
b/crates/iceberg/src/spec/partition.rs
index 3e639de00..e161802c4 100644
--- a/crates/iceberg/src/spec/partition.rs
+++ b/crates/iceberg/src/spec/partition.rs
@@ -1213,9 +1213,9 @@ mod tests {
         assert_eq!(
             partition_spec.partition_type(&schema).unwrap(),
             StructType::new(vec![
-                NestedField::optional(1000, "ts_day", 
PrimitiveType::Date.into()).into(),
-                NestedField::optional(1001, "id_bucket", 
PrimitiveType::Int.into()).into(),
-                NestedField::optional(1002, "id_truncate", 
PrimitiveType::String.into()).into(),
+                NestedField::optional(1000, "ts_day", 
PrimitiveType::Date).into(),
+                NestedField::optional(1001, "id_bucket", 
PrimitiveType::Int).into(),
+                NestedField::optional(1002, "id_truncate", 
PrimitiveType::String).into(),
             ])
         );
 
@@ -1224,16 +1224,16 @@ mod tests {
         assert_eq!(
             partition_spec.partition_type(&empty_schema).unwrap(),
             StructType::new(vec![
-                NestedField::optional(1000, "ts_day", 
PrimitiveType::Date.into()).into(),
-                NestedField::optional(1001, "id_bucket", 
PrimitiveType::Int.into()).into(),
-                NestedField::optional(1002, "id_truncate", 
PrimitiveType::Unknown.into()).into(),
+                NestedField::optional(1000, "ts_day", 
PrimitiveType::Date).into(),
+                NestedField::optional(1001, "id_bucket", 
PrimitiveType::Int).into(),
+                NestedField::optional(1002, "id_truncate", 
PrimitiveType::Unknown).into(),
             ])
         );
 
         // Missing sources must not suppress validation of transforms on 
remaining sources.
         let incompatible_schema = Schema::builder()
             .with_fields(vec![
-                NestedField::required(1, "id", 
PrimitiveType::Boolean.into()).into(),
+                NestedField::required(1, "id", PrimitiveType::Boolean).into(),
             ])
             .build()
             .unwrap();
@@ -1273,7 +1273,7 @@ mod tests {
             assert_eq!(
                 spec.partition_type(&schema).unwrap(),
                 StructType::new(vec![
-                    NestedField::optional(1000, "partition", 
expected_type.into()).into(),
+                    NestedField::optional(1000, "partition", 
expected_type).into(),
                 ])
             );
         }
@@ -2093,8 +2093,8 @@ mod tests {
         ] {
             let schema = Schema::builder()
                 .with_fields(vec![
-                    NestedField::required(1, "kept", 
PrimitiveType::Int.into()).into(),
-                    NestedField::required(2, "dropped", 
source_type.into()).into(),
+                    NestedField::required(1, "kept", 
PrimitiveType::Int).into(),
+                    NestedField::required(2, "dropped", source_type).into(),
                 ])
                 .build()
                 .unwrap();
@@ -2105,7 +2105,7 @@ mod tests {
                 .unwrap();
             let current_schema = Schema::builder()
                 .with_fields(vec![
-                    NestedField::required(1, "kept", 
PrimitiveType::Int.into()).into(),
+                    NestedField::required(1, "kept", 
PrimitiveType::Int).into(),
                 ])
                 .build()
                 .unwrap();
diff --git a/crates/iceberg/src/test_utils/scan.rs 
b/crates/iceberg/src/test_utils/scan.rs
index 039fb6421..a6023a9bf 100644
--- a/crates/iceberg/src/test_utils/scan.rs
+++ b/crates/iceberg/src/test_utils/scan.rs
@@ -630,7 +630,7 @@ impl TableTestFixture {
         // The schema the data manifest was written under: the current schema 
with the
         // partition source `x` still `int`.
         let mut fields = current_schema.as_struct().fields().to_vec();
-        fields[0] = NestedField::required(1, "x", 
PrimitiveType::Int.into()).into();
+        fields[0] = NestedField::required(1, "x", PrimitiveType::Int).into();
         let written_schema = Arc::new(
             Schema::builder()
                 .with_schema_id(0)
@@ -766,7 +766,7 @@ impl TableTestFixture {
         let current_partition_spec = 
self.table.metadata().default_partition_spec();
 
         let mut fields = current_schema.as_struct().fields().to_vec();
-        fields[0] = NestedField::required(1, "x", 
PrimitiveType::Int.into()).into();
+        fields[0] = NestedField::required(1, "x", PrimitiveType::Int).into();
         let written_schema = Arc::new(
             Schema::builder()
                 .with_schema_id(0)
@@ -875,7 +875,7 @@ impl TableTestFixture {
             .as_struct()
             .fields()
             .to_vec();
-        fields.push(NestedField::optional(9, "d", 
PrimitiveType::Date.into()).into());
+        fields.push(NestedField::optional(9, "d", PrimitiveType::Date).into());
         let date_schema = 
Schema::builder().with_fields(fields).build().unwrap();
         let date_spec = PartitionSpec::builder(date_schema.clone())
             .add_partition_field("x", "x", Transform::Identity)
@@ -904,7 +904,7 @@ impl TableTestFixture {
         // The schema the data manifest was written under: the partition 
source `x` still
         // `int`.
         let mut fields = current_schema.as_struct().fields().to_vec();
-        fields[0] = NestedField::required(1, "x", 
PrimitiveType::Int.into()).into();
+        fields[0] = NestedField::required(1, "x", PrimitiveType::Int).into();
         let written_schema = Arc::new(
             Schema::builder()
                 .with_schema_id(0)

Reply via email to