diff --git a/src/lib.rs b/src/lib.rs index eda363d..9bedb0e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1 +1,2 @@ pub mod macros; +pub mod types; diff --git a/src/types.rs b/src/types.rs new file mode 100644 index 0000000..0ad7c1c --- /dev/null +++ b/src/types.rs @@ -0,0 +1,21 @@ +#[derive(Debug)] +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 ingest(&mut self, rhs: Self) { + self.v += rhs.v + } +}