Trait CursorBase

Source
pub trait CursorBase<T> {
    // Required methods
    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§

Source

fn get(&self) -> Option<&T>

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.

Source

fn node(&self) -> HNode

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

Source

fn move_to(&mut self, handle: HNode) -> bool

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.

Source

fn move_next(&mut self) -> Option<HNode>

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.

Source

fn move_prev(&mut self) -> Option<HNode>

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.

Source

fn move_to_back(&mut self) -> Option<HNode>

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.

Source

fn move_to_front(&mut self) -> Option<HNode>

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.

Source

fn move_to_start(&mut self) -> Option<HNode>

👎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.

Source

fn move_to_end(&mut self) -> Option<HNode>

👎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.

Source

fn forward(&mut self, n: usize) -> Result<HNode, HNode>

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.

Source

fn backward(&mut self, n: usize) -> Result<HNode, HNode>

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§

Source§

impl<'a, T> CursorBase<T> for Cursor<'a, T>

Source§

impl<'a, T> CursorBase<T> for CursorMut<'a, T>