pub unsafe trait Guarded {
type Target: ?Sized;
// Required method
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.
Required Associated Types§
Sourcetype Target: ?Sized
type Target: ?Sized
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§
Sourcefn 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.