pub trait CursorBase<T> {
    fn get(&self) -> Option<&T>;
    fn node(&self) -> HNode;
    fn move_to(&mut self, handle: HNode) -> bool;
    fn move_next(&mut self) -> Option<HNode>;
    fn move_prev(&mut self) -> Option<HNode>;
    fn move_to_back(&mut self) -> Option<HNode>;
    fn move_to_front(&mut self) -> Option<HNode>;
    fn move_to_start(&mut self) -> Option<HNode>;
    fn move_to_end(&mut self) -> Option<HNode>;
    fn forward(&mut self, n: usize) -> Result<HNode, HNode>;
    fn backward(&mut self, n: usize) -> Result<HNode, HNode>;
}
Expand description

A cursor is a position within a linked vector. It can be used to traverse the list in either direction, and to access the element at the current position.

Required Methods§

Returns a reference to the element at the cursor’s current position, or None if the underlying vector is empty. Enable the "optionless-accessors" feature to remove the Option from the return type, see usage notes.

Returns the handle of the element at the cursor’s current position.

Moves the cursor to the specified handle. The handle must be valid. Returns true if the move was successful. If the "optionless-accessors" feature is enabled, this method doesn’t return a value. This feature is disabled by default, see usage notes.

Moves the cursor to the next element. Returns the handle of the next element if the cursor was moved, None if the cursor was already at the end of the list.

Moves the cursor to the previous element. Returns the handle of the previous element if the cursor was moved, None if the cursor was already at the start of the list.

Moves the cursor to the end of the list. Returns the handle of the last element if the cursor was moved, None if the list is empty.

Moves the cursor to the start of the list. Returns the handle of the first element if the cursor was moved, None if the list is empty.

👎Deprecated since 1.1.0: Use move_to_front() instead.

Moves the cursor to the start of the list. Returns the handle of the first element if the cursor was moved, None if the list is empty.

👎Deprecated since 1.1.0: Use move_to_back() instead.

Moves the cursor to the end of the list. Returns the handle of the last element if the cursor was moved, None if the list is empty.

Moves the cursor forward by the specified number of elements. Returns the handle of the element at the new position if the cursor was moved, Err(handle) if the cursor did not move forward by the specified amount. The handle at the current position after the move is returned in either Result variant.

Moves the cursor backward by the specified number of elements. Returns the handle of the element at the new position if the cursor was moved, Err(handle) if the cursor did not move backward by the specified amount. The handle at the current position after the move is returned in either Result variant.

Implementors§