From ca9d1a8ae300d5a5ac9d907fa734c159b63a15ea Mon Sep 17 00:00:00 2001 From: Gwo Tzu-Hsing Date: Tue, 19 Nov 2024 00:04:12 +0800 Subject: [PATCH 1/3] Wilder implementor of Box and Box in parquet --- parquet/src/arrow/async_reader/mod.rs | 2 +- parquet/src/arrow/async_writer/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/parquet/src/arrow/async_reader/mod.rs b/parquet/src/arrow/async_reader/mod.rs index 8b315cc9f784..bae5ce594fe7 100644 --- a/parquet/src/arrow/async_reader/mod.rs +++ b/parquet/src/arrow/async_reader/mod.rs @@ -158,7 +158,7 @@ pub trait AsyncFileReader: Send { fn get_metadata(&mut self) -> BoxFuture<'_, Result>>; } -impl AsyncFileReader for Box { +impl<'reader> AsyncFileReader for Box { fn get_bytes(&mut self, range: Range) -> BoxFuture<'_, Result> { self.as_mut().get_bytes(range) } diff --git a/parquet/src/arrow/async_writer/mod.rs b/parquet/src/arrow/async_writer/mod.rs index 8155b57d9ac6..5695fd216087 100644 --- a/parquet/src/arrow/async_writer/mod.rs +++ b/parquet/src/arrow/async_writer/mod.rs @@ -89,7 +89,7 @@ pub trait AsyncFileWriter: Send { fn complete(&mut self) -> BoxFuture<'_, Result<()>>; } -impl AsyncFileWriter for Box { +impl<'writer> AsyncFileWriter for Box { fn write(&mut self, bs: Bytes) -> BoxFuture<'_, Result<()>> { self.as_mut().write(bs) } From c8a25d81e3cc06d3abed584678cd5b23f26f3e66 Mon Sep 17 00:00:00 2001 From: Tzu Gwo Date: Wed, 20 Nov 2024 10:08:17 +0800 Subject: [PATCH 2/3] Update parquet/src/arrow/async_reader/mod.rs Co-authored-by: Jay Zhan --- parquet/src/arrow/async_reader/mod.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/parquet/src/arrow/async_reader/mod.rs b/parquet/src/arrow/async_reader/mod.rs index bae5ce594fe7..e2bf07240ed7 100644 --- a/parquet/src/arrow/async_reader/mod.rs +++ b/parquet/src/arrow/async_reader/mod.rs @@ -158,6 +158,11 @@ pub trait AsyncFileReader: Send { fn get_metadata(&mut self) -> BoxFuture<'_, Result>>; } +/// Implements AsyncFileReader for boxed readers with an explicit lifetime 'reader. +/// This allows Box to be used as an AsyncFileReader, +/// which is needed when the boxed reader contains references with lifetimes +/// shorter than 'static. + impl<'reader> AsyncFileReader for Box { fn get_bytes(&mut self, range: Range) -> BoxFuture<'_, Result> { self.as_mut().get_bytes(range) From 73d3c19709afaa5ff02c74f77d2a17a6adf500a1 Mon Sep 17 00:00:00 2001 From: Gwo Tzu-Hsing Date: Wed, 20 Nov 2024 11:51:51 +0800 Subject: [PATCH 3/3] remove empty line --- parquet/src/arrow/async_reader/mod.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/parquet/src/arrow/async_reader/mod.rs b/parquet/src/arrow/async_reader/mod.rs index e2bf07240ed7..cee5f11dd598 100644 --- a/parquet/src/arrow/async_reader/mod.rs +++ b/parquet/src/arrow/async_reader/mod.rs @@ -158,11 +158,7 @@ pub trait AsyncFileReader: Send { fn get_metadata(&mut self) -> BoxFuture<'_, Result>>; } -/// Implements AsyncFileReader for boxed readers with an explicit lifetime 'reader. -/// This allows Box to be used as an AsyncFileReader, -/// which is needed when the boxed reader contains references with lifetimes -/// shorter than 'static. - +/// This allows Box to be used as an AsyncFileReader, impl<'reader> AsyncFileReader for Box { fn get_bytes(&mut self, range: Range) -> BoxFuture<'_, Result> { self.as_mut().get_bytes(range)