use std::ptr;
use crate::{
buffer::{resident::staging, segments::Header},
mem,
};
unsafe impl mem::raw::Edge for staging::Header<'_> {
fn count(&self) -> &mem::raw::Count {
&self.refs
}
}
unsafe impl mem::raw::Target for staging::Header<'_> {
unsafe fn destroy(pointer: ptr::NonNull<Self>) {
drop(unsafe { Box::from_raw(pointer.as_ptr()) });
}
}
unsafe impl<T> mem::raw::Edge for Header<T> {
fn count(&self) -> &mem::raw::Count {
self.count()
}
}
unsafe impl<T> mem::raw::Target for Header<T> {
unsafe fn destroy(pointer: ptr::NonNull<Self>) {
unsafe { Self::destroy(pointer) };
}
}