Skip to content

Instantly share code, notes, and snippets.

@steveklabnik
Created September 11, 2018 21:52
Embed
What would you like to do?
#[derive(Debug)]
pub struct IndexList<T> {
contents: Vec<Entry<T>>,
generation: usize,
next_free: Option<usize>,
head: Option<usize>,
tail: Option<usize>,
}
#[derive(Debug, PartialEq)]
pub enum Entry<T> {
Free { next_free: Option<usize> },
Occupied(OccupiedEntry<T>),
}
#[derive(Debug, PartialEq)]
pub struct OccupiedEntry<T> {
item: T,
generation: usize,
next: Option<usize>,
prev: Option<usize>,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment