linhr commented on issue #1314:
URL: https://github.com/apache/iceberg-rust/issues/1314#issuecomment-2903122746

   > That's the problem, we are defining a richer interface that's not used by 
iceberg, then it would be confusing for people who want to define their own 
FileIO implementation, which part should they implement, and which part they 
should not? Also confusing for user, they are supposed to be careful when using 
FileIO since some implementation may not implement some methods.
   
   This seems a good point. I feel an explicit interface conveys the intent if 
Iceberg only uses a small set of file/object operations.
   
   > Here is an example:
   
   I'm not sure if I understand this though, especially the difference between 
`FileIO` and `DynFileIO`. Also it seems `InputFile` etc. are trait now, and I'm 
worried that it may add burden to the implementer.
   
   Following my earlier thinking around making `Storage` a trait, would the 
following be a viable option?
   
   ```rust
   pub struct FileIO {
       inner: Arc<dyn Storage>,
   }
   
   pub(crate) trait Storage {
   }
   
   pub struct InputFile {
       inner: Arc<dyn Storage>,
       path: String,
   }
   ```


-- 
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

Reply via email to