Trait dvcompute::simulation::strategy::QueueStorage[][src]

pub trait QueueStorage {
    type Priority;
    type Item;
    fn is_empty(&self, p: &Point<'_>) -> bool;
fn pop(&self, p: &Point<'_>) -> Option<Self::Item>;
fn push(&self, item: Self::Item, p: &Point<'_>);
fn push_with_priority(
        &self,
        priority: Self::Priority,
        item: Self::Item,
        p: &Point<'_>
    );
fn remove_by<F>(&self, predicate: F, p: &Point<'_>) -> Option<Self::Item>
    where
        F: Fn(&Self::Item) -> bool
;
fn exists<F>(&self, predicate: F, p: &Point<'_>) -> bool
    where
        F: Fn(&Self::Item) -> bool
;
fn find<F>(&self, predicate: F, p: &Point<'_>) -> Option<Self::Item>
    where
        F: Fn(&Self::Item) -> bool,
        Self::Item: Clone
; }
Expand description

Represents a queue storage.

The queue storage either supports push, or push_with_priority, but it cannot support the both methods simulateneously.

Associated Types

The type of priorities, if push_with_priority is supported. Otherwise, it may define the () type.

The type of items.

Required methods

Test whether the storage is empty.

Pop the front item.

Push an item, or panic if only push_with_priority is supported.

Push an item with the specified priority, or panic if only push is supported.

Try to remove an item satisfying the specified predicate and return the item removed.

Detect whether there is an element satisfying the specified predicate in the queue.

Find an element satisfying the specified predicate.

Implementors