use o3::buffer;
use crate::io::recv;
unsafe impl buffer::raw::Mutable for recv::Lease<'_> {}
unsafe impl buffer::raw::Split for recv::Lease<'_> {}
unsafe impl buffer::raw::Store for recv::Lease<'_> {
fn empty() -> Option<Self> {
None
}
fn restrict(slice: buffer::raw::Slice<'_, '_, Self>) {
buffer::raw::Store::project(unsafe { slice.map(|lease| &mut lease.0) });
}
}
unsafe impl<'d> buffer::raw::Freeze for recv::Lease<'d> {
type Output = recv::Shared<'d>;
fn freeze(self) -> Self::Output {
self.into()
}
}