mettrics 0.0.7

Makes publishing meaningful metrics from applications easier.
Documentation
use crate::rexport::serde;

#[derive(Debug, serde::Serialize)]
pub struct CounterU32 {
    v: u32,
}

impl CounterU32 {
    #[inline(always)]
    pub fn new() -> Self {
        Self { v: 0 }
    }

    #[inline(always)]
    pub fn inc(&mut self) {
        self.v += 1
    }

    #[inline(always)]
    pub fn add(&mut self, v: u32) {
        self.v += v
    }

    #[inline(always)]
    pub fn ingest(&mut self, rhs: Self) {
        self.v += rhs.v
    }

    #[inline(always)]
    pub fn to_u32(&self) -> u32 {
        self.v
    }

    #[inline(always)]
    pub fn take_from(&mut self, from: &mut Self) {
        self.v += from.v;
        from.v = 0;
    }
}