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§
Required Methods§
Sourcefn push(&self, item: Self::Item, p: &Point<'_>)
fn push(&self, item: Self::Item, p: &Point<'_>)
Push an item, or panic if only push_with_priority
is supported.
Sourcefn push_with_priority(
&self,
priority: Self::Priority,
item: Self::Item,
p: &Point<'_>,
)
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.
Sourcefn remove_boxed_by(
&self,
predicate: Box<dyn Fn(&Self::Item) -> bool>,
p: &Point<'_>,
) -> Option<Self::Item>
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.