var searchIndex = {}; searchIndex["intrusive_collections"] = {"doc":"Intrusive collections for Rust.","items":[[3,"IntrusiveRef","intrusive_collections","Pointer to an object that may be part of one or more intrusive colllections",null,null],[4,"Bound","","An endpoint of a range of keys.",null,null],[13,"Included","","An inclusive bound.",0,null],[13,"Excluded","","An exclusive bound.",0,null],[13,"Unbounded","","An infinite endpoint. Indicates that there is no bound in this direction.",0,null],[0,"singly_linked_list","","Intrusive singly-linked list.",null,null],[3,"Link","intrusive_collections::singly_linked_list","Intrusive link that allows an object to be inserted into a\n`SinglyLinkedList`.",null,null],[3,"Cursor","","A cursor which provides read-only access to a `SinglyLinkedList`.",null,null],[3,"CursorMut","","A cursor which provides mutable access to a `SinglyLinkedList`.",null,null],[3,"SinglyLinkedList","","An intrusive doubly-linked list.",null,null],[3,"Iter","","An iterator over references to the items of a `SinglyLinkedList`.",null,null],[11,"new","","Creates a new `Link`.",1,{"inputs":[],"output":{"name":"link"}}],[11,"is_linked","","Checks whether the `Link` is linked into a `SinglyLinkedList`.",1,null],[11,"unsafe_unlink","","Unlinks the object from the `SinglyLinkedList` without invalidating the\nrest of the list.",1,null],[11,"clone","","",1,null],[11,"default","","",1,{"inputs":[],"output":{"name":"link"}}],[11,"fmt","","",1,null],[11,"clone","","",2,null],[11,"is_null","","Checks if the cursor is currently pointing to the null object.",2,null],[11,"get","","Returns a reference to the object that the cursor is currently\npointing to.",2,null],[11,"move_next","","Moves the cursor to the next element of the `SinglyLinkedList`.",2,null],[11,"is_null","","Checks if the cursor is currently pointing to the null object.",3,null],[11,"get","","Returns a reference to the object that the cursor is currently\npointing to.",3,null],[11,"as_cursor","","Returns a read-only cursor pointing to the current element.",3,null],[11,"move_next","","Moves the cursor to the next element of the `SinglyLinkedList`.",3,null],[11,"remove_next","","Removes the next element from the `SinglyLinkedList`.",3,null],[11,"replace_next_with","","Removes the next element from the `SinglyLinkedList` and inserts\nanother object in its place.",3,null],[11,"insert_after","","Inserts a new element into the `SinglyLinkedList` after the current one.",3,null],[11,"splice_after","","Inserts the elements from the given `SinglyLinkedList` after the current\none.",3,null],[11,"split_after","","Splits the list into two after the current element. This will return a\nnew list consisting of everything after the cursor, with the original\nlist retaining everything before.",3,null],[11,"new","","Creates an empty `SinglyLinkedList`.",4,{"inputs":[{"name":"a"}],"output":{"name":"singlylinkedlist"}}],[11,"is_empty","","Returns `true if the `SinglyLinkedList` is empty.",4,null],[11,"cursor","","Returns a null `Cursor` for this list.",4,null],[11,"cursor_mut","","Returns a null `CursorMut` for this list.",4,null],[11,"cursor_from_ptr","","Creates a `Cursor` from a pointer to an element.",4,null],[11,"cursor_mut_from_ptr","","Creates a `CursorMut` from a pointer to an element.",4,null],[11,"front","","Returns a `Cursor` pointing to the first element of the list. If the\nlist is empty then a null cursor is returned.",4,null],[11,"front_mut","","Returns a `CursorMut` pointing to the first element of the list. If the\nthe list is empty then a null cursor is returned.",4,null],[11,"iter","","Gets an iterator over the objects in the `SinglyLinkedList`.",4,null],[11,"drain","","Calls the given function for each element in the `SinglyLinkedList`\nbefore removing it from the list.",4,null],[11,"clear","","Removes all elements from the `SinglyLinkedList`.",4,null],[11,"fast_clear","","Empties the `SinglyLinkedList` without unlinking objects in it.",4,null],[11,"take","","Takes all the elements out of the `SinglyLinkedList`, leaving it empty.\nThe taken elements are returned as a new `SinglyLinkedList`.",4,null],[11,"push_front","","Inserts a new element at the start of the `SinglyLinkedList`.",4,null],[11,"pop_front","","Removes the first element of the `SinglyLinkedList`.",4,null],[11,"default","","",4,{"inputs":[],"output":{"name":"singlylinkedlist"}}],[11,"fmt","","",4,null],[11,"next","","",5,null],[11,"clone","","",5,null],[0,"linked_list","intrusive_collections","Intrusive doubly-linked list.",null,null],[3,"Link","intrusive_collections::linked_list","Intrusive link that allows an object to be inserted into a `LinkedList`.",null,null],[3,"Cursor","","A cursor which provides read-only access to a `LinkedList`.",null,null],[3,"CursorMut","","A cursor which provides mutable access to a `LinkedList`.",null,null],[3,"LinkedList","","An intrusive doubly-linked list.",null,null],[3,"Iter","","An iterator over references to the items of a `LinkedList`.",null,null],[11,"new","","Creates a new `Link`.",6,{"inputs":[],"output":{"name":"link"}}],[11,"is_linked","","Checks whether the `Link` is linked into a `LinkedList`.",6,null],[11,"unsafe_unlink","","Unlinks the object from the `LinkedList` without invalidating the rest\nof the list.",6,null],[11,"clone","","",6,null],[11,"default","","",6,{"inputs":[],"output":{"name":"link"}}],[11,"fmt","","",6,null],[11,"clone","","",7,null],[11,"is_null","","Checks if the cursor is currently pointing to the null object.",7,null],[11,"get","","Returns a reference to the object that the cursor is currently\npointing to.",7,null],[11,"move_next","","Moves the cursor to the next element of the `LinkedList`.",7,null],[11,"move_prev","","Moves the cursor to the previous element of the `LinkedList`.",7,null],[11,"is_null","","Checks if the cursor is currently pointing to the null object.",8,null],[11,"get","","Returns a reference to the object that the cursor is currently\npointing to.",8,null],[11,"as_cursor","","Returns a read-only cursor pointing to the current element.",8,null],[11,"move_next","","Moves the cursor to the next element of the `LinkedList`.",8,null],[11,"move_prev","","Moves the cursor to the previous element of the `LinkedList`.",8,null],[11,"remove","","Removes the current element from the `LinkedList`.",8,null],[11,"replace_with","","Removes the current element from the `LinkedList` and inserts another\nobject in its place.",8,null],[11,"insert_after","","Inserts a new element into the `LinkedList` after the current one.",8,null],[11,"insert_before","","Inserts a new element into the `LinkedList` before the current one.",8,null],[11,"splice_after","","Inserts the elements from the given `LinkedList` after the current one.",8,null],[11,"splice_before","","Moves all element from the given `LinkedList` before the current one.",8,null],[11,"split_after","","Splits the list into two after the current element. This will return a\nnew list consisting of everything after the cursor, with the original\nlist retaining everything before.",8,null],[11,"split_before","","Splits the list into two before the current element. This will return a\nnew list consisting of everything before the cursor, with the original\nlist retaining everything after.",8,null],[11,"new","","Creates an empty `LinkedList`.",9,{"inputs":[{"name":"a"}],"output":{"name":"linkedlist"}}],[11,"is_empty","","Returns `true if the `LinkedList` is empty.",9,null],[11,"cursor","","Returns a null `Cursor` for this list.",9,null],[11,"cursor_mut","","Returns a null `CursorMut` for this list.",9,null],[11,"cursor_from_ptr","","Creates a `Cursor` from a pointer to an element.",9,null],[11,"cursor_mut_from_ptr","","Creates a `CursorMut` from a pointer to an element.",9,null],[11,"front","","Returns a `Cursor` pointing to the first element of the list. If the\nlist is empty then a null cursor is returned.",9,null],[11,"front_mut","","Returns a `CursorMut` pointing to the first element of the list. If the\nthe list is empty then a null cursor is returned.",9,null],[11,"back","","Returns a `Cursor` pointing to the last element of the list. If the list\nis empty then a null cursor is returned.",9,null],[11,"back_mut","","Returns a `CursorMut` pointing to the last element of the list. If the\nlist is empty then a null cursor is returned.",9,null],[11,"iter","","Gets an iterator over the objects in the `LinkedList`.",9,null],[11,"drain","","Calls the given function for each element in the `LinkedList` before\nremoving it from the list.",9,null],[11,"clear","","Removes all elements from the `LinkedList`.",9,null],[11,"fast_clear","","Empties the `LinkedList` without unlinking objects in it.",9,null],[11,"take","","Takes all the elements out of the `LinkedList`, leaving it empty. The\ntaken elements are returned as a new `LinkedList`.",9,null],[11,"push_front","","Inserts a new element at the start of the `LinkedList`.",9,null],[11,"push_back","","Inserts a new element at the end of the `LinkedList`.",9,null],[11,"pop_front","","Removes the first element of the `LinkedList`.",9,null],[11,"pop_back","","Removes the last element of the `LinkedList`.",9,null],[11,"default","","",9,{"inputs":[],"output":{"name":"linkedlist"}}],[11,"fmt","","",9,null],[11,"next","","",10,null],[11,"next_back","","",10,null],[11,"clone","","",10,null],[0,"rbtree","intrusive_collections","Intrusive red-black tree.",null,null],[3,"Link","intrusive_collections::rbtree","Intrusive link that allows an object to be inserted into a `RBTree`.",null,null],[3,"Cursor","","A cursor which provides read-only access to a `RBTree`.",null,null],[3,"CursorMut","","A cursor which provides mutable access to a `RBTree`.",null,null],[3,"RBTree","","An intrusive red-black tree.",null,null],[3,"InsertCursor","","A cursor pointing to a slot in which an element can be inserted into a\n`RBTree`.",null,null],[3,"Iter","","An iterator over references to the items of a `RBTree`.",null,null],[4,"Entry","","An entry in a `RBTree`.",null,null],[13,"Occupied","","An occupied entry.",11,null],[13,"Vacant","","A vacant entry.",11,null],[8,"TreeAdaptor","","Trait which provides a way of extracting a key from an intrusive object.\nThis key is used to maintain all elements in the tree in increasing order.\nThe key can be returned either as a reference or as a value.",null,null],[16,"Key","","Type of the key returned by `get_key`.",12,null],[10,"get_key","","Gets the key for the given object.",12,null],[11,"new","","Creates a new `Link`.",13,{"inputs":[],"output":{"name":"link"}}],[11,"is_linked","","Checks whether the `Link` is linked into a `LinkedList`.",13,null],[11,"unsafe_unlink","","Unlinks the object from the `RBTree` without invalidating the rest\nof the tree.",13,null],[11,"clone","","",13,null],[11,"default","","",13,{"inputs":[],"output":{"name":"link"}}],[11,"fmt","","",13,null],[11,"clone","","",14,null],[11,"is_null","","Checks if the cursor is currently pointing to the null object.",14,null],[11,"get","","Returns a reference to the object that the cursor is currently\npointing to.",14,null],[11,"move_next","","Moves the cursor to the next element of the `RBTree`.",14,null],[11,"move_prev","","Moves the cursor to the previous element of the `RBTree`.",14,null],[11,"is_null","","Checks if the cursor is currently pointing to the null object.",15,null],[11,"get","","Returns a reference to the object that the cursor is currently\npointing to.",15,null],[11,"as_cursor","","Returns a read-only cursor pointing to the current element.",15,null],[11,"move_next","","Moves the cursor to the next element of the `RBTree`.",15,null],[11,"move_prev","","Moves the cursor to the previous element of the `RBTree`.",15,null],[11,"remove","","Removes the current element from the `RBTree`.",15,null],[11,"replace_with","","Removes the current element from the `RBTree` and inserts another\nobject in its place.",15,null],[11,"insert_after","","Inserts a new element into the `RBTree` after the current one.",15,null],[11,"insert_before","","Inserts a new element into the `RBTree` before the current one.",15,null],[11,"new","","Creates an empty `RBTree`.",16,{"inputs":[{"name":"a"}],"output":{"name":"rbtree"}}],[11,"is_empty","","Returns `true if the `RBTree` is empty.",16,null],[11,"cursor","","Returns a null `Cursor` for this tree.",16,null],[11,"cursor_mut","","Returns a null `CursorMut` for this tree.",16,null],[11,"cursor_from_ptr","","Creates a `Cursor` from a pointer to an element.",16,null],[11,"cursor_mut_from_ptr","","Creates a `CursorMut` from a pointer to an element.",16,null],[11,"front","","Returns a `Cursor` pointing to the first element of the tree. If the\ntree is empty then a null cursor is returned.",16,null],[11,"front_mut","","Returns a `CursorMut` pointing to the first element of the tree. If the\nthe tree is empty then a null cursor is returned.",16,null],[11,"back","","Returns a `Cursor` pointing to the last element of the tree. If the tree\nis empty then a null cursor is returned.",16,null],[11,"back_mut","","Returns a `CursorMut` pointing to the last element of the tree. If the\ntree is empty then a null cursor is returned.",16,null],[11,"find","","Returns a `Cursor` pointing to an element with the given key. If no such\nelement is found then a null cursor is returned.",16,null],[11,"find_mut","","Returns a `CursorMut` pointing to an element with the given key. If no\nsuch element is found then a null cursor is returned.",16,null],[11,"lower_bound","","Returns a `Cursor` pointing to the lowest element whose key is above\nthe given bound. If no such element is found then a null cursor is\nreturned.",16,null],[11,"lower_bound_mut","","Returns a `CursorMut` pointing to the first element whose key is\nabove the given bound. If no such element is found then a null\ncursor is returned.",16,null],[11,"upper_bound","","Returns a `Cursor` pointing to the last element whose key is below\nthe given bound. If no such element is found then a null cursor is\nreturned.",16,null],[11,"upper_bound_mut","","Returns a `CursorMut` pointing to the last element whose key is\nbelow the given bound. If no such element is found then a null\ncursor is returned.",16,null],[11,"insert","","Inserts a new element into the `RBTree`.",16,null],[11,"entry","","Returns an `Entry` for the given key which contains a `CursorMut` to an\nelement with the given key or an `InsertCursor` which points to a place\nin which to insert a new element with the given key.",16,null],[11,"range","","Constructs a double-ended iterator over a sub-range of elements in the\ntree, starting at min, and ending at max. If min is `Unbounded`, then it\nwill be treated as "negative infinity", and if max is `Unbounded`, then\nit will be treated as "positive infinity". Thus\n`range(Unbounded, Unbounded)` will yield the whole collection.",16,null],[11,"iter","","Gets an iterator over the objects in the `RBTree`, in ascending key\norder.",16,null],[11,"drain","","Calls the given function for each element in the `RBTree` before\nremoving it from the tree, in ascending key order.",16,null],[11,"clear","","Removes all elements from the `RBTree`.",16,null],[11,"fast_clear","","Empties the `RBTree` without unlinking objects in it.",16,null],[11,"take","","Takes all the elements out of the `RBTree`, leaving it empty. The\ntaken elements are returned as a new `RBTree`.",16,null],[11,"default","","",16,{"inputs":[],"output":{"name":"rbtree"}}],[11,"fmt","","",16,null],[11,"insert","","Inserts a new element into the `RBTree` at the location indicated by\nthis `InsertCursor`.",17,null],[11,"or_insert","","Inserts an element into the `RBTree` if the entry is vacant, returning\na `CursorMut` to the resulting value. If the entry is occupied then a\n`CursorMut` pointing to the element is returned.",11,null],[11,"or_insert_with","","Calls the given function and inserts the result into the `RBTree` if the\nentry is vacant, returning a `CursorMut` to the resulting value. If the\nentry is occupied then a `CursorMut` pointing to the element is\nreturned and the function is not executed.",11,null],[11,"next","","",18,null],[11,"next_back","","",18,null],[11,"clone","","",18,null],[11,"from_raw","intrusive_collections","Creates an `IntrusiveRef` from a raw pointer",19,null],[11,"into_raw","","Converts an `IntrusiveRef` into a raw pointer",19,null],[11,"from_box","","Creates an `IntrusiveRef` from a `Box`",19,{"inputs":[{"name":"box"}],"output":{"name":"intrusiveref"}}],[11,"into_box","","Converts an `IntrusiveRef` into a `Box`",19,null],[11,"clone","","",19,null],[11,"deref","","",19,null],[11,"as_ref","","",19,null],[11,"borrow","","",19,null],[11,"fmt","","",19,null],[8,"Adaptor","","Trait representing a mapping between an object and an intrusive link type\nwhich is a member of that object.",null,null],[16,"Container","","Type containing the intrusive link",20,null],[10,"get_container","","Gets a reference to the containing object from a reference to a link.",20,null],[10,"get_link","","Gets a reference to the link for the given container object.",20,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"hash","","",0,null],[11,"fmt","","",0,null],[11,"clone","","",0,null],[14,"offset_of_unsafe!","","Macro to get the offset of a struct field in bytes from the address of the\nstruct.",null,null],[14,"offset_of!","","Macro to get the offset of a struct field in bytes from the address of the\nstruct.",null,null],[14,"container_of!","","Unsafe macro to get a raw pointer to an outer object from a pointer to one\nof its fields.",null,null],[14,"intrusive_adaptor!","","Macro to generate an empty type implementing the Adaptor trait for the given\ncontainer object and field.",null,null]],"paths":[[4,"Bound"],[3,"Link"],[3,"Cursor"],[3,"CursorMut"],[3,"SinglyLinkedList"],[3,"Iter"],[3,"Link"],[3,"Cursor"],[3,"CursorMut"],[3,"LinkedList"],[3,"Iter"],[4,"Entry"],[8,"TreeAdaptor"],[3,"Link"],[3,"Cursor"],[3,"CursorMut"],[3,"RBTree"],[3,"InsertCursor"],[3,"Iter"],[3,"IntrusiveRef"],[8,"Adaptor"]]}; initSearch(searchIndex);