Xuanwo commented on code in PR #802:
URL: https://github.com/apache/iceberg-rust/pull/802#discussion_r1887841721


##########
crates/iceberg/src/io/file_io.rs:
##########
@@ -165,7 +175,7 @@ impl FileIOBuilder {
     /// Fetch the scheme string.
     ///
     /// The scheme_str will be empty if it's None.
-    pub(crate) fn into_parts(self) -> (String, HashMap<String, String>) {
+    pub fn into_parts(self) -> (String, HashMap<String, String>) {

Review Comment:
   > But user are not supposed to depend on the serialized format, but only the 
ser/de api provided by this library.
   
   Providing ser/de is a contract I don't want to establish with users. It 
implies a promise that users can deserialize the file I/O back at any time 
after serialization. Once we expose ser/de, users will inevitably try to use it 
in ways we never anticipated, such as storing it in a metadata service or 
transferring it between clusters.
   
   There should be a much broader discussion about how we should handle 
serialization/deserialization across our project. Similar issues could occur in 
https://github.com/apache/iceberg-rust/issues/774. However, I don't want to 
initiate that discussion here.
   
   In my opinion, making an API-breaking change is much better than offering 
serialization/deserialization but breaking it unexpectedly.



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