Struct rustc_data_structures::work_queue::WorkQueue [−][src]
pub struct WorkQueue<T: Idx> { /* fields omitted */ }
A work queue is a handy data structure for tracking work left to do. (For example, basic blocks left to process.) It is basically a de-duplicating queue; so attempting to insert X if X is already enqueued has no effect. This implementation assumes that the elements are dense indices, so it can allocate the queue to size and also use a bit set to track occupancy.
Methods
impl<T: Idx> WorkQueue<T>[src]
impl<T: Idx> WorkQueue<T>pub fn with_all(len: usize) -> Self[src]
pub fn with_all(len: usize) -> SelfCreate a new work queue with all the elements from (0..len).
pub fn with_none(len: usize) -> Self[src]
pub fn with_none(len: usize) -> SelfCreate a new work queue that starts empty, where elements range from (0..len).
pub fn insert(&mut self, element: T) -> bool[src]
pub fn insert(&mut self, element: T) -> boolAttempt to enqueue element in the work queue. Returns false if it was already present.
pub fn pop(&mut self) -> Option<T>[src]
pub fn pop(&mut self) -> Option<T>Attempt to enqueue element in the work queue. Returns false if it was already present.
pub fn is_empty(&self) -> bool[src]
pub fn is_empty(&self) -> boolTrue if nothing is enqueued.