mirror of
https://github.com/rust-embedded/heapless.git
synced 2025-10-02 23:04:40 +00:00
24 lines
696 B
Rust
24 lines
696 B
Rust
macro_rules! droppable {
|
|
() => {
|
|
static COUNT: core::sync::atomic::AtomicI32 = core::sync::atomic::AtomicI32::new(0);
|
|
|
|
#[derive(Eq, Ord, PartialEq, PartialOrd)]
|
|
struct Droppable(i32);
|
|
impl Droppable {
|
|
fn new() -> Self {
|
|
COUNT.fetch_add(1, core::sync::atomic::Ordering::Relaxed);
|
|
Droppable(Self::count())
|
|
}
|
|
|
|
fn count() -> i32 {
|
|
COUNT.load(core::sync::atomic::Ordering::Relaxed)
|
|
}
|
|
}
|
|
impl Drop for Droppable {
|
|
fn drop(&mut self) {
|
|
COUNT.fetch_sub(1, core::sync::atomic::Ordering::Relaxed);
|
|
}
|
|
}
|
|
};
|
|
}
|