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]