client_rust icon indicating copy to clipboard operation
client_rust copied to clipboard

mips: EncodeCounterValue implementation missing for u32?

Open brocaar opened this issue 2 years ago • 0 comments

Code that compiles fine for ARMv7 and AMD64, fails when compiling for MIPS (mipsel-unknown-linux-musl):

...
the trait `EncodeCounterValue` is not implemented for `u32`
   |
   = help: the following other types implement trait `EncodeCounterValue`:
             u64
             f64
   = note: required for `prometheus_client::metrics::counter::Counter` to implement `EncodeMetric`
   = note: 1 redundant requirement hidden
...

It looks like that mips targets are using u32 instead of u64 for counter values:

https://github.com/prometheus/client_rust/blob/master/src/metrics/counter.rs#L51

And indeed there is no EncodeCounterValue implementation for u32:

https://github.com/prometheus/client_rust/blob/master/src/encoding.rs#L537

Edit: This issue might apply to other types as well, e.g. Gauge. I have not tested this.

brocaar avatar Oct 27 '23 15:10 brocaar