Struct intrusive_collections::xor_linked_list::XorLinkedList[][src]

pub struct XorLinkedList<A: Adapter> where
    A::LinkOps: XorLinkedListOps
{ /* fields omitted */ }
Expand description

Intrusive xor doubly-linked list which uses less memory than a regular doubly linked list

In exchange for less memory use, it is impossible to create a cursor from a pointer to an element.

When this collection is dropped, all elements linked into it will be converted back to owned pointers and dropped.

Implementations

Creates an empty XorLinkedList.

Returns true if the XorLinkedList is empty.

Returns a null Cursor for this list.

Returns a null CursorMut for this list.

Creates a Cursor from a pointer to an element and a pointer to the previous element.

Safety

ptr must be a pointer to an object that is part of this list. prev must be a pointer to an object that is the previous object in this list (null for the head)

Creates a CursorMut from a pointer to an element and a pointer to the previous element.

Safety

ptr must be a pointer to an object that is part of this list. prev must be a pointer to an object that is the previous object in this list (null for the head)

Creates a Cursor from a pointer to an element and a pointer to the next element.

Safety

ptr must be a pointer to an object that is part of this list. next must be a pointer to an object that is the next object in this list (null for the tail)

Creates a CursorMut from a pointer to an element and a pointer to the next element.

Safety

ptr must be a pointer to an object that is part of this list. next must be a pointer to an object that is the next object in this list (null for the tail)

Returns a Cursor pointing to the first element of the list. If the list is empty then a null cursor is returned.

Returns a CursorMut pointing to the first element of the list. If the the list is empty then a null cursor is returned.

Returns a Cursor pointing to the last element of the list. If the list is empty then a null cursor is returned.

Returns a CursorMut pointing to the last element of the list. If the list is empty then a null cursor is returned.

Gets an iterator over the objects in the XorLinkedList.

Removes all elements from the XorLinkedList.

This will unlink all object currently in the list, which requires iterating through all elements in the XorLinkedList. Each element is converted back to an owned pointer and then dropped.

Empties the XorLinkedList without unlinking or freeing objects in it.

Since this does not unlink any objects, any attempts to link these objects into another XorLinkedList will fail but will not cause any memory unsafety. To unlink those objects manually, you must call the force_unlink function on them.

Takes all the elements out of the XorLinkedList, leaving it empty. The taken elements are returned as a new XorLinkedList.

Inserts a new element at the start of the XorLinkedList.

Inserts a new element at the end of the XorLinkedList.

Removes the first element of the XorLinkedList.

This returns None if the XorLinkedList is empty.

Removes the last element of the XorLinkedList.

This returns None if the XorLinkedList is empty.

Reverses the list in-place.

Due to the structure of XorLinkedList, this operation is O(1).

Trait Implementations

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Executes the destructor for this type. Read more

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.