use smallvec::SmallVec;
use crate::MAX_INLINE_SPANS;
use crate::mem::BlockRef;
#[derive(Debug)]
#[must_use]
pub struct MemoryGuard {
_block_refs: SmallVec<[BlockRef; MAX_INLINE_SPANS]>,
}
impl MemoryGuard {
pub(crate) fn new(block_refs: impl IntoIterator<Item = BlockRef>) -> Self {
Self {
_block_refs: block_refs.into_iter().collect(),
}
}
}
impl Default for MemoryGuard {
fn default() -> Self {
Self::new(vec![])
}
}
#[cfg_attr(coverage_nightly, coverage(off))]
#[cfg(test)]
mod tests {
use super::*;
#[expect(clippy::used_underscore_binding, reason = "Sometimes, you gotta do what you gotta do.")]
#[test]
fn default_creates_empty_guard() {
let guard = MemoryGuard::default();
assert!(guard._block_refs.is_empty());
}
}