Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(metrics/histogram): constructor accepts
IntoIterator
this is a very small, **non-breaking**, alteration to the signature of `Histogram`'s constructor. rather than accepting an `impl Iterator`, this commit changes the parameter of `Histogram::new()` to be an `impl IntoIterator` instead. this does not affect the existing contract because of the blanket `impl<I: Iterator> IntoIterator for I` implementation provided by the standard library. by accepting `IntoIterator` however, callers providing a collection such as a `[f64; 5]` array or a `Vec<f64>` vector do not need to invoke `into_iter()` themselves at the call-site. ```rust // now, constructing a histogram needn't involve `into_iter()`... use prometheus_client::metrics::histogram::Histogram; let histogram = Histogram::new([10.0, 100.0, 1_000.0]); ``` this leans on the same sugar used by `for {}` loops, see the relevant section of the `std::iter` documentation here: <https://doc.rust-lang.org/stable/std/iter/index.html#for-loops-and-intoiterator> no changes are needed within `Histogram::new()` because we already call `into_iter()` on the provider iterator when appending `f64::MAX` and collecting the buckets into a `Vec<_>`. Signed-off-by: katelyn martin <me+cratelyn@katelyn.world>
- Loading branch information