Skip to content

Commit 8175d61

Browse files
committed
feat(encoding)!: EncodeExemplarValue does not consume ExemplarValueEncoder
see #135. this adjusts the parameter of `encode()` so that it only mutably borrows the encoder. Signed-off-by: katelyn martin <me+cratelyn@katelyn.world>
1 parent 0c0d131 commit 8175d61

File tree

3 files changed

+8
-9
lines changed

3 files changed

+8
-9
lines changed

src/encoding.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -691,29 +691,29 @@ impl<'a> CounterValueEncoder<'a> {
691691
/// An encodable exemplar value.
692692
pub trait EncodeExemplarValue {
693693
/// Encode the given instance in the OpenMetrics text encoding.
694-
fn encode(&self, encoder: ExemplarValueEncoder) -> Result<(), std::fmt::Error>;
694+
fn encode(&self, encoder: &mut ExemplarValueEncoder) -> Result<(), std::fmt::Error>;
695695
}
696696

697697
impl EncodeExemplarValue for f64 {
698-
fn encode(&self, mut encoder: ExemplarValueEncoder) -> Result<(), std::fmt::Error> {
698+
fn encode(&self, encoder: &mut ExemplarValueEncoder) -> Result<(), std::fmt::Error> {
699699
encoder.encode(*self)
700700
}
701701
}
702702

703703
impl EncodeExemplarValue for u64 {
704-
fn encode(&self, mut encoder: ExemplarValueEncoder) -> Result<(), std::fmt::Error> {
704+
fn encode(&self, encoder: &mut ExemplarValueEncoder) -> Result<(), std::fmt::Error> {
705705
encoder.encode(*self as f64)
706706
}
707707
}
708708

709709
impl EncodeExemplarValue for f32 {
710-
fn encode(&self, mut encoder: ExemplarValueEncoder) -> Result<(), std::fmt::Error> {
710+
fn encode(&self, encoder: &mut ExemplarValueEncoder) -> Result<(), std::fmt::Error> {
711711
encoder.encode(*self as f64)
712712
}
713713
}
714714

715715
impl EncodeExemplarValue for u32 {
716-
fn encode(&self, mut encoder: ExemplarValueEncoder) -> Result<(), std::fmt::Error> {
716+
fn encode(&self, encoder: &mut ExemplarValueEncoder) -> Result<(), std::fmt::Error> {
717717
encoder.encode(*self as f64)
718718
}
719719
}

src/encoding/protobuf.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,8 @@ impl<S: EncodeLabelSet, V: EncodeExemplarValue> TryFrom<&Exemplar<S, V>>
294294

295295
fn try_from(exemplar: &Exemplar<S, V>) -> Result<Self, Self::Error> {
296296
let mut value = f64::default();
297-
exemplar
298-
.value
299-
.encode(ExemplarValueEncoder { value: &mut value }.into())?;
297+
let mut encoder = ExemplarValueEncoder { value: &mut value }.into();
298+
exemplar.value.encode(&mut encoder)?;
300299

301300
let mut labels = vec![];
302301
let mut encoder = LabelSetEncoder {

src/encoding/text.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ impl<'a> MetricEncoder<'a> {
455455
.encode(&mut LabelSetEncoder::new(self.writer).into())?;
456456
self.writer.write_str("} ")?;
457457
exemplar.value.encode(
458-
ExemplarValueEncoder {
458+
&mut ExemplarValueEncoder {
459459
writer: self.writer,
460460
}
461461
.into(),

0 commit comments

Comments
 (0)