[−][src]Struct contrail_collections::linked_list::LinkedListNode
A node in a linked list.
Methods
impl<M, T> LinkedListNode<M, T> where
M: StorageMode,
T: Bytes,
[src]
M: StorageMode,
T: Bytes,
pub fn data(&self, trail: &Trail) -> T
[src]
Returns the data associated with the linked list node on the trail.
Examples
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![10, 11, 12]); let trail = builder.finish(); let node = arena.node(2); assert_eq!(node.data(&trail), 12);
pub fn set_data(&self, trail: &mut Trail, new_data: T)
[src]
Sets the data associated with the linked list node on the trail.
Examples
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![1, 0, 0]); let mut trail = builder.finish(); let node = arena.node(0); assert_eq!(node.data(&trail), 1); node.set_data(&mut trail, 0); assert_eq!(node.data(&trail), 0);
pub fn next(&self, trail: &Trail) -> LinkedListNode<M, T>
[src]
Returns the next linked list node that this node is linked to.
Initially, a node is linked to itself.
Examples
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![(); 3]); let mut trail = builder.finish(); let node = arena.node(0); assert_eq!(node.next(&trail), node); let other = arena.node(1); other.insert_after(&mut trail, node); assert_eq!(node.next(&trail), other); assert_eq!(other.next(&trail), node);
pub fn prev(&self, trail: &Trail) -> LinkedListNode<M, T>
[src]
Returns the previous linked list node that this node is linked to.
Initially, a node is linked to itself.
Examples
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![(); 3]); let mut trail = builder.finish(); let node = arena.node(0); assert_eq!(node.prev(&trail), node); let other = arena.node(1); other.insert_before(&mut trail, node); assert_eq!(node.prev(&trail), other); assert_eq!(other.prev(&trail), node);
pub fn unlink(&self, trail: &mut Trail)
[src]
Unlinks the node from its neighbors and links to itself.
Examples
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![(); 3]); let mut trail = builder.finish(); let a = arena.node(0); let b = arena.node(1); let c = arena.node(2); b.insert_after(&mut trail, a); c.insert_after(&mut trail, b); assert_eq!(a.next(&trail), b); assert_eq!(b.next(&trail), c); assert_eq!(c.next(&trail), a); b.unlink(&mut trail); assert_eq!(b.next(&trail), b); assert_eq!(a.next(&trail), c); assert_eq!(c.next(&trail), a);
pub fn insert_after(&self, trail: &mut Trail, node: LinkedListNode<M, T>)
[src]
Sets the next linked list node that this node is linked to.
Examples
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![(); 3]); let mut trail = builder.finish(); let node = arena.node(0); let other = arena.node(1); other.insert_after(&mut trail, node); assert_eq!(node.next(&trail), other); assert_eq!(other.next(&trail), node);
pub fn insert_before(&self, trail: &mut Trail, node: LinkedListNode<M, T>)
[src]
Sets the previous linked list node that this node is linked to.
Examples
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![(); 3]); let mut trail = builder.finish(); let node = arena.node(0); let other = arena.node(1); other.insert_before(&mut trail, node); assert_eq!(node.prev(&trail), other); assert_eq!(other.prev(&trail), node);
Trait Implementations
impl<M, T> PartialEq<LinkedListNode<M, T>> for LinkedListNode<M, T>
[src]
fn eq(&self, other: &Self) -> bool
[src]
#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]
fn ne(&self, other: &Rhs) -> boolThis method tests for !=
.
impl<M, T> Clone for LinkedListNode<M, T>
[src]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<M, T> Eq for LinkedListNode<M, T>
[src]
impl<M, T> Copy for LinkedListNode<M, T>
[src]
impl<M, T> Debug for LinkedListNode<M, T> where
M: StorageMode,
[src]
M: StorageMode,
Auto Trait Implementations
impl<M, T> Send for LinkedListNode<M, T> where
M: Send,
T: Send,
M: Send,
T: Send,
impl<M, T> Sync for LinkedListNode<M, T> where
M: Sync,
T: Sync,
M: Sync,
T: Sync,
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
🔬 This is a nightly-only experimental API. (
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
🔬 This is a nightly-only experimental API. (
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,