CuteChuanChuan opened a new pull request, #9969:
URL: https://github.com/apache/arrow-rs/pull/9969

   # Which issue does this PR close?
   
   - Follow-up to #9877; completes the remaining scope of #9667 (making 
`BloomFilterProperties` fields non-public and exposing accessors).
   
   # Rationale for this change
   
   #9877 introduced `BloomFilterPropertiesBuilder`. With the builder in place, 
the public `fpp` / `ndv` fields constrain future evolution. Locking them down 
behind accessors makes the public API smaller and more evolvable, matching the 
original direction outlined in #9667.
   
   # What changes are included in this PR?
   
   - Make `BloomFilterProperties::fpp` and `BloomFilterProperties::ndv` private 
fields
   - Add `pub fn fpp(&self) -> f64` and `pub fn ndv(&self) -> u64` accessor 
methods
   - Move the per-field documentation verbatim onto the accessor methods so it 
remains rendered by rustdoc (private fields are not rendered)
   
   # Are these changes tested?
   Yes — the existing test suite covers the affected paths
   
   # Are there any user-facing changes?
   **Yes — this is a breaking change to the public API.**
   
   - External struct-literal construction no longer compiles:
   ```rust
   // Before — no longer works
   BloomFilterProperties { fpp: 0.01, ndv: 10_000 }
   
   // Use the builder added in #9877 instead:
   BloomFilterProperties::builder()
     .with_fpp(0.01)
     .with_max_ndv(10_000)
     .build()
   ```
   - Direct field reads (props.fpp, props.ndv) no longer compile; use 
props.fpp() / props.ndv() instead.


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

Reply via email to