This is an automated email from the ASF dual-hosted git repository.
liurenjie1024 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 213f84e9 Expose length of iterators via ExactSizeIterator (#692)
213f84e9 is described below
commit 213f84e97f97d6e7d9f5f3149b522144a9e56d9d
Author: Christian <[email protected]>
AuthorDate: Mon Nov 11 07:46:32 2024 +0100
Expose length of iterators via ExactSizeIterator (#692)
---
crates/iceberg/src/spec/schema.rs | 2 +-
crates/iceberg/src/spec/table_metadata.rs | 10 ++++++----
crates/iceberg/src/spec/values.rs | 2 +-
crates/iceberg/src/spec/view_metadata.rs | 4 ++--
4 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/crates/iceberg/src/spec/schema.rs
b/crates/iceberg/src/spec/schema.rs
index cf86874d..eaf1fcc8 100644
--- a/crates/iceberg/src/spec/schema.rs
+++ b/crates/iceberg/src/spec/schema.rs
@@ -358,7 +358,7 @@ impl Schema {
/// Returns [`identifier_field_ids`].
#[inline]
- pub fn identifier_field_ids(&self) -> impl Iterator<Item = i32> + '_ {
+ pub fn identifier_field_ids(&self) -> impl ExactSizeIterator<Item = i32> +
'_ {
self.identifier_field_ids.iter().copied()
}
diff --git a/crates/iceberg/src/spec/table_metadata.rs
b/crates/iceberg/src/spec/table_metadata.rs
index 74e69007..daed758c 100644
--- a/crates/iceberg/src/spec/table_metadata.rs
+++ b/crates/iceberg/src/spec/table_metadata.rs
@@ -203,7 +203,7 @@ impl TableMetadata {
/// Returns schemas
#[inline]
- pub fn schemas_iter(&self) -> impl Iterator<Item = &SchemaRef> {
+ pub fn schemas_iter(&self) -> impl ExactSizeIterator<Item = &SchemaRef> {
self.schemas.values()
}
@@ -228,7 +228,9 @@ impl TableMetadata {
/// Returns all partition specs.
#[inline]
- pub fn partition_specs_iter(&self) -> impl Iterator<Item =
&SchemalessPartitionSpecRef> {
+ pub fn partition_specs_iter(
+ &self,
+ ) -> impl ExactSizeIterator<Item = &SchemalessPartitionSpecRef> {
self.partition_specs.values()
}
@@ -252,7 +254,7 @@ impl TableMetadata {
/// Returns all snapshots
#[inline]
- pub fn snapshots(&self) -> impl Iterator<Item = &SnapshotRef> {
+ pub fn snapshots(&self) -> impl ExactSizeIterator<Item = &SnapshotRef> {
self.snapshots.values()
}
@@ -301,7 +303,7 @@ impl TableMetadata {
/// Return all sort orders.
#[inline]
- pub fn sort_orders_iter(&self) -> impl Iterator<Item = &SortOrderRef> {
+ pub fn sort_orders_iter(&self) -> impl ExactSizeIterator<Item =
&SortOrderRef> {
self.sort_orders.values()
}
diff --git a/crates/iceberg/src/spec/values.rs
b/crates/iceberg/src/spec/values.rs
index 3c6e2aa6..552ac497 100644
--- a/crates/iceberg/src/spec/values.rs
+++ b/crates/iceberg/src/spec/values.rs
@@ -1560,7 +1560,7 @@ impl Struct {
}
/// Create a iterator to read the field in order of field_value.
- pub fn iter(&self) -> impl Iterator<Item = Option<&Literal>> {
+ pub fn iter(&self) -> impl ExactSizeIterator<Item = Option<&Literal>> {
self.null_bitmap.iter().zip(self.fields.iter()).map(
|(null, value)| {
if *null {
diff --git a/crates/iceberg/src/spec/view_metadata.rs
b/crates/iceberg/src/spec/view_metadata.rs
index 741e3864..7c247c17 100644
--- a/crates/iceberg/src/spec/view_metadata.rs
+++ b/crates/iceberg/src/spec/view_metadata.rs
@@ -94,7 +94,7 @@ impl ViewMetadata {
/// Returns all view versions.
#[inline]
- pub fn versions(&self) -> impl Iterator<Item = &ViewVersionRef> {
+ pub fn versions(&self) -> impl ExactSizeIterator<Item = &ViewVersionRef> {
self.versions.values()
}
@@ -114,7 +114,7 @@ impl ViewMetadata {
/// Returns schemas
#[inline]
- pub fn schemas_iter(&self) -> impl Iterator<Item = &SchemaRef> {
+ pub fn schemas_iter(&self) -> impl ExactSizeIterator<Item = &SchemaRef> {
self.schemas.values()
}