Trait BoxableQueueStorage

Source
pub trait BoxableQueueStorage {
    type Priority;
    type Item;

    // Required methods
    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_boxed_by(
        &self,
        predicate: Box<dyn Fn(&Self::Item) -> bool>,
        p: &Point<'_>,
    ) -> Option<Self::Item>;
    fn exists_boxed(
        &self,
        predicate: Box<dyn Fn(&Self::Item) -> bool>,
        p: &Point<'_>,
    ) -> bool;
    fn find_boxed(
        &self,
        predicate: Box<dyn Fn(&Self::Item) -> bool>,
        p: &Point<'_>,
    ) -> Option<Self::Item>
       where Self::Item: Clone;
}
Expand description

Represents a QueueStorage that can be boxed.

Required Associated Types§

Source

type Priority

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

Source

type Item

The type of items.

Required Methods§

Source

fn is_empty(&self, p: &Point<'_>) -> bool

Test whether the storage is empty.

Source

fn pop(&self, p: &Point<'_>) -> Option<Self::Item>

Pop the front item.

Source

fn push(&self, item: Self::Item, p: &Point<'_>)

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

Source

fn push_with_priority( &self, priority: Self::Priority, item: Self::Item, p: &Point<'_>, )

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

Source

fn remove_boxed_by( &self, predicate: Box<dyn Fn(&Self::Item) -> bool>, p: &Point<'_>, ) -> Option<Self::Item>

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

Source

fn exists_boxed( &self, predicate: Box<dyn Fn(&Self::Item) -> bool>, p: &Point<'_>, ) -> bool

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

Source

fn find_boxed( &self, predicate: Box<dyn Fn(&Self::Item) -> bool>, p: &Point<'_>, ) -> Option<Self::Item>
where Self::Item: Clone,

Find an element satisfying the specified predicate.

Implementors§