Trait intrusive_collections::LinkOps [−][src]
pub unsafe trait LinkOps { type LinkPtr: Copy + Eq; unsafe fn acquire_link(&mut self, ptr: Self::LinkPtr) -> bool; unsafe fn release_link(&mut self, ptr: Self::LinkPtr); }
Expand description
Base trait for link operations.
LinkPtr
is the representation of a link pointer.
Typically this is NonNull
, but compact representations such
as u8
or u16
are possible.
Associated Types
Required methods
unsafe fn acquire_link(&mut self, ptr: Self::LinkPtr) -> bool
unsafe fn acquire_link(&mut self, ptr: Self::LinkPtr) -> bool
Attempts to acquire ownership of a link so that it can be used in an intrusive collection.
If this function succeeds then the intrusive collection will have
exclusive access to the link until release_link
is called.
unsafe fn release_link(&mut self, ptr: Self::LinkPtr)
unsafe fn release_link(&mut self, ptr: Self::LinkPtr)
Releases ownership of a link that was previously acquired with acquire_link
.
Safety
An implementation of release_link
must not panic.