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]

Reply via email to