alamb commented on issue #172: URL: https://github.com/apache/iceberg-rust/issues/172#issuecomment-2473264890
One potential API that would not cause disruption to the current consumers would be to add a extension trait like we do with [UserDefinedLogicalNode](https://docs.rs/datafusion/latest/datafusion/logical_expr/trait.UserDefinedLogicalNode.html) in DataFusion The user would create a `FileIO` like ```rust let my_wrapper = Arc::new(ObjectStoreWrapper::new(...)) ... // FileIO remains a struct that wraps a Storage enum let file_io = FileIO::from_extension(my_wrapper) ``` We could add a new variant of `Storage` like `Storage::Extension` https://github.com/apache/iceberg-rust/blob/52296eb5e1be88a241903488c133214cb5a9a363/crates/iceberg/src/io/storage.rs#L31 A user would create one like ```rust struct ObjectStoreWrapper { ... } /// New trait that users would have to implement impl FileIOExtension { ... } ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org