CTTY opened a new issue, #3619: URL: https://github.com/apache/iceberg-rust/issues/3619
### Is your feature request related to a problem or challenge? The snapshot producer inputs introduced in #3564 (and the earlier `SimpleSnapshotProducer`) are plain structs with `pub` fields built by struct literal: - `MergingIntent` (`transaction/snapshot/merging.rs`) - `AppendIntent` (`transaction/snapshot/simple.rs`) - `SnapshotCommitInput` (`transaction/snapshot/mod.rs`) Adding a field to any of them touches every construction site, and the style differs from the crate's `pub` structs, which use `typed_builder::TypedBuilder` with private fields and getters (e.g. `AddColumn` in `transaction/update_schema.rs`). Raised by @blackmwk in https://github.com/apache/iceberg-rust/pull/3564#discussion_r4441015674. ### Describe the solution you'd like Derive `TypedBuilder` on the three structs, make the fields private, and add `pub(crate)` getters. Optional fields get `#[builder(default)]`; `fail_missing_delete_paths` defaults to `true`. Update the construction sites in `append.rs`, the two producers, and tests. `AddedManifests` and `Filtered` stay as they are: each is a function result with a single construction site inside its producer, so a builder would add indirection without protecting anything. Follow-up to #3564; part of #3417. ### Willingness to contribute I can contribute to this feature independently -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
