[−][src]Struct contrail_collections::linked_list::LinkedListArena
An arena that holds linked list nodes.
Methods
impl<M, T> LinkedListArena<M, T> where
M: StorageMode,
T: Bytes,
[src]
M: StorageMode,
T: Bytes,
pub fn new(builder: &mut TrailBuilder, data: Vec<T>) -> Self
[src]
Creates a new linked list arena.
The number of nodes available is equal to the length of the data vector. Initially, all nodes are linked to themselves.
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![(); 3]); let trail = builder.finish(); let node = arena.node(0); assert_eq!(node.prev(&trail), node); assert_eq!(node.next(&trail), node);
pub fn node(&self, i: usize) -> LinkedListNode<M, T>
[src]
Returns the ith linked list node in the arena.
Panics
Panics if i < self.size()
.
Examples
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![1, 3, 5]); let trail = builder.finish(); let node0 = arena.node(0); assert_eq!(node0.data(&trail), 1); let node1 = arena.node(1); assert_eq!(node1.data(&trail), 3);
pub fn size(&self) -> usize
[src]
Returns the number of nodes in the arena.
Examples
use contrail::TrailBuilder; use contrail_collections::linked_list::BacktrackableLinkedListArena; let mut builder = TrailBuilder::new(); let arena = BacktrackableLinkedListArena::new(&mut builder, vec![(); 3]); let trail = builder.finish(); assert_eq!(arena.size(), 3);
Trait Implementations
impl<M, T> Clone for LinkedListArena<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> Copy for LinkedListArena<M, T>
[src]
impl<M, T> Debug for LinkedListArena<M, T> where
M: StorageMode,
[src]
M: StorageMode,
Auto Trait Implementations
impl<M, T> Send for LinkedListArena<M, T> where
M: Send,
T: Send,
M: Send,
T: Send,
impl<M, T> Sync for LinkedListArena<M, T> where
M: Sync,
T: Sync,
M: Sync,
T: Sync,
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
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> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?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>,