#[repr(C)]pub struct pm_list_node {
pub next: *mut pm_list_node,
}Expand description
This struct represents an abstract linked list that provides common functionality. It is meant to be used any time a linked list is necessary to store data.
The linked list itself operates off a set of pointers. Because the pointers are not necessarily sequential, they can be of any size. We use this fact to allow the consumer of this linked list to extend the node struct to include any data they want. This is done by using the pm_list_node_t as the first member of the struct.
For example, if we want to store a list of integers, we can do the following:
typedef struct {
pm_list_node_t node;
int value;
} pm_int_node_t;
pm_list_t list = { 0 };
pm_int_node_t *node = xmalloc(sizeof(pm_int_node_t));
node->value = 5;
pm_list_append(&list, &node->node);The pm_list_t struct is used to represent the overall linked list. It contains a pointer to the head and tail of the list. This allows for easy iteration and appending of new nodes.
Fields§
§next: *mut pm_list_nodeA pointer to the next node in the list.
Trait Implementations§
Source§impl Clone for pm_list_node
impl Clone for pm_list_node
Source§fn clone(&self) -> pm_list_node
fn clone(&self) -> pm_list_node
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for pm_list_node
impl Debug for pm_list_node
Source§impl Default for pm_list_node
impl Default for pm_list_node
impl Copy for pm_list_node
Auto Trait Implementations§
impl Freeze for pm_list_node
impl RefUnwindSafe for pm_list_node
impl !Send for pm_list_node
impl !Sync for pm_list_node
impl Unpin for pm_list_node
impl UnwindSafe for pm_list_node
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)