blob: 53d21cf304b234ab00b932c396346d8175e2602d [file] [log] [blame]
#![cfg(test)]
use super::mem::arena::{upb_Arena_Free, upb_Arena_New, RawArena};
#[macro_export]
/// Force a compiler error if the passed in function is not linked.
macro_rules! assert_linked {
($($vals:tt)+) => {
let _ = std::hint::black_box($($vals)+ as *const ());
}
}
pub struct TestArena {
raw: RawArena,
}
impl TestArena {
pub fn new() -> Self {
TestArena { raw: unsafe { upb_Arena_New() }.unwrap() }
}
pub fn raw(&self) -> RawArena {
self.raw
}
}
impl std::ops::Drop for TestArena {
fn drop(&mut self) {
unsafe { upb_Arena_Free(self.raw) }
}
}