Struct c_linked_list::CLinkedListMut
[−]
[src]
pub struct CLinkedListMut<T, N: Fn(&T) -> *mut T> { // some fields omitted }
Wraps a C linked list comprised of mutable pointers between nodes.
Methods
impl<'a, T: 'a, N: Fn(&T) -> *mut T + 'a> CLinkedListMut<T, N>
unsafe fn from_ptr(head: *mut T, next: N) -> CLinkedListMut<T, N>
Construct a CLinkedListMut
by wrapping a C linked list. head
points to the head element
of the list or is NULL for a list of length 0. next
is a function that takes a node and
returns a pointer to the next element.
Example
To wrap this C type.
struct LinkedListNode {
int value;
struct LinkedListNode *next;
};
Call this function as CLinkedListMut::from_ptr(ptr_to_head, |n| n.next)
.
Unsafety
This function is unsafe because it is up to the caller to ensure that head
is valid.
fn iter(&'a self) -> CLinkedListMutIter<'a, T, N>
Iterate over the linked list, returning references to the nodes of the list.
fn iter_mut(&'a mut self) -> CLinkedListMutIterMut<'a, T, N>
Iterate over the linked list, returning mutable references to the nodes of the list.
fn is_empty(&self) -> bool
Returns true
if the list is empty.
fn len(&self) -> usize
Calculates the length of the list. This is an O(n)
operation.
fn front(&self) -> Option<&T>
Provides a reference to the front element in the list, or None
if the list is empty.
fn front_mut(&self) -> Option<&mut T>
Provides a mutable reference to the front element in the list, or None
if the list is
empty.