Andrew Lamb created ARROW-10390: ----------------------------------- Summary: [Rust] [Parquet] Regression Can not implement custom ParquetWriter because `TryClone` is not publically exported Key: ARROW-10390 URL: https://issues.apache.org/jira/browse/ARROW-10390 Project: Apache Arrow Issue Type: Bug Reporter: Andrew Lamb Assignee: Andrew Lamb
As of this commit https://github.com/apache/arrow/commit/7155cd5488310c15d864428252ca71dd9ebd3b48 I don't think it is possible for a user of the arrow trait to implement a custom Parquet writer anymore. Specifically, theParquetWriter trait requires `TryClone` implemented, https://github.com/apache/arrow/blob/master/rust/parquet/src/file/writer.rs#L117-L118 {code} pub trait ParquetWriter: Write + Seek + TryClone {} impl<T: Write + Seek + TryClone> ParquetWriter for T {} /// A serialized implementation for Parquet [`FileWriter`]. /// See documentation on file writer for more information. pub struct SerializedFileWriter<W: ParquetWriter> { {code} but `TryClone` is can not be used. It is a `pub` trait: https://github.com/apache/arrow/blob/master/rust/parquet/src/util/io.rs#L28-L32 {code} /// TryClone tries to clone the type and should maintain the `Seek` position of the given /// instance. pub trait TryClone: Sized { /// Clones the type returning a new instance or an error if it's not possible /// to clone it. fn try_clone(&self) -> Result<Self>; } {code} But the module it is (util.io) in is not marked as `pub`: https://github.com/apache/arrow/blob/master/rust/parquet/src/lib.rs#L39 ``` #[macro_use] mod util; #[cfg(any(feature = "arrow", test))] pub mod arrow; pub mod column; pub mod compression; mod encodings; pub mod file; pub mod record; pub mod schema; {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)