Skip to content

Commit c256fd2

Browse files
committed
feat(encoding)!: Collector does not consume DescriptorEncoder
see prometheus#135. this adjusts the parameter of `encode()` so that it only mutably borrows the encoder. Signed-off-by: katelyn martin <[email protected]>
1 parent 9b7317d commit c256fd2

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

src/collector.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,20 @@ use crate::encoding::DescriptorEncoder;
2222
/// struct MyCollector {}
2323
///
2424
/// impl Collector for MyCollector {
25-
/// fn encode(&self, mut encoder: DescriptorEncoder) -> Result<(), std::fmt::Error> {
25+
/// fn encode(&self, encoder: &mut DescriptorEncoder) -> Result<(), std::fmt::Error> {
2626
/// let counter = ConstCounter::new(42u64);
27-
/// let metric_encoder = encoder.encode_descriptor(
27+
/// let mut metric_encoder = encoder.encode_descriptor(
2828
/// "my_counter",
2929
/// "some help",
3030
/// None,
3131
/// counter.metric_type(),
3232
/// )?;
33-
/// counter.encode(metric_encoder)?;
33+
/// counter.encode(&mut metric_encoder)?;
3434
/// Ok(())
3535
/// }
3636
/// }
3737
/// ```
3838
pub trait Collector: std::fmt::Debug + Send + Sync + 'static {
3939
/// Once the [`Collector`] is registered, this method is called on each scrape.
40-
fn encode(&self, encoder: DescriptorEncoder) -> Result<(), std::fmt::Error>;
40+
fn encode(&self, encoder: &mut DescriptorEncoder) -> Result<(), std::fmt::Error>;
4141
}

src/encoding/text.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1077,7 +1077,7 @@ mod tests {
10771077
impl crate::collector::Collector for Collector {
10781078
fn encode(
10791079
&self,
1080-
mut encoder: crate::encoding::DescriptorEncoder,
1080+
encoder: &mut crate::encoding::DescriptorEncoder,
10811081
) -> Result<(), std::fmt::Error> {
10821082
let counter = crate::metrics::counter::ConstCounter::new(42u64);
10831083
let mut metric_encoder = encoder.encode_descriptor(

src/registry.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,15 +184,15 @@ impl Registry {
184184
/// struct MyCollector {}
185185
///
186186
/// impl Collector for MyCollector {
187-
/// fn encode(&self, mut encoder: DescriptorEncoder) -> Result<(), std::fmt::Error> {
187+
/// fn encode(&self, encoder: &mut DescriptorEncoder) -> Result<(), std::fmt::Error> {
188188
/// let counter = ConstCounter::new(42u64);
189-
/// let metric_encoder = encoder.encode_descriptor(
189+
/// let mut metric_encoder = encoder.encode_descriptor(
190190
/// "my_counter",
191191
/// "some help",
192192
/// None,
193193
/// counter.metric_type(),
194194
/// )?;
195-
/// counter.encode(metric_encoder)?;
195+
/// counter.encode(&mut metric_encoder)?;
196196
/// Ok(())
197197
/// }
198198
/// }
@@ -300,9 +300,9 @@ impl Registry {
300300
}
301301

302302
for collector in self.collectors.iter() {
303-
let descriptor_encoder =
303+
let mut descriptor_encoder =
304304
encoder.with_prefix_and_labels(self.prefix.as_ref(), &self.labels);
305-
collector.encode(descriptor_encoder)?;
305+
collector.encode(&mut descriptor_encoder)?;
306306
}
307307

308308
for registry in self.sub_registries.iter() {

0 commit comments

Comments
 (0)