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