Trait redox_buffer_pool::Guarded [−][src]
pub unsafe trait Guarded { type Target: ?Sized; fn borrow_guarded(&self) -> &Self::Target; }
Expand description
A trait for pointer types that uphold the guard invariants, namely that the pointer must be owned, and that it must dereference into a stable address.
Associated Types
The target pointee that this pointer may dereference into. There are no real restrictions
to what this type can be. However, the user must not assume that simply because a &Target
reference is protected, that references indirectly derived (via Deref
and other traits)
would also be protected.
Required methods
fn borrow_guarded(&self) -> &Self::Target
fn borrow_guarded(&self) -> &Self::Target
Borrow the pointee, into a fixed reference that can be sent directly and safely to e.g. memory-sharing completion-based I/O interfaces.
Implementors of such interfaces must however take buffers by reference to maintain safety.
Implementations on Foreign Types
type Target = U
Implementors
impl<'pool, I, H, E, C> Guarded for BufferSlice<'pool, I, H, E, Guard, C> where
I: Integer,
H: Handle<I, E>,
E: Copy,
C: AsBufferPool<I, H, E>,