Struct queue_queue::rusty::RustyPriorityQueue
source · pub struct RustyPriorityQueue<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> { /* private fields */ }
Expand description
A priority queue implementation based on Rust’s BinaryHeap
.
Templated with P
for priority and T
for data.
P
must bePartialOrd
,PartialEq
, andEq
.T
must bePartialEq
andEq
.
If Node A and Node B have the same priority, but Node A was added before Node B,
then Node A will be prioritized over Node B.
See PriorityQueue
for more information.
§Examples
let mut prio = RustyPriorityQueue::<usize, String>::default();
prio.enqueue(2, "hello".to_string());
prio.enqueue(3, "julia".to_string());
prio.enqueue(1, "world".to_string());
prio.enqueue(3, "naomi".to_string());
let mut new_prio: RustyPriorityQueue<usize, String> = prio
.into_iter()
.map(|(priority, data)| (priority, data.to_owned() + " wow"))
.collect();
assert_eq!(new_prio.dequeue(), Some((3, "julia wow".to_string())));
assert_eq!(new_prio.dequeue(), Some((3, "naomi wow".to_string())));
assert_eq!(new_prio.dequeue(), Some((2, "hello wow".to_string())));
assert_eq!(new_prio.dequeue(), Some((1, "world wow".to_string())));
Implementations§
source§impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> RustyPriorityQueue<P, T>
impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> RustyPriorityQueue<P, T>
sourcepub const fn iter(&self) -> RustyPriorityQueueIterator<'_, P, T> ⓘ
pub const fn iter(&self) -> RustyPriorityQueueIterator<'_, P, T> ⓘ
Get an iterator over the priority queue
sourcepub fn into_iter(self) -> RustyPriorityQueueIntoIterator<P, T> ⓘ
pub fn into_iter(self) -> RustyPriorityQueueIntoIterator<P, T> ⓘ
Convert the priority queue into an iterator
Trait Implementations§
source§impl<P: Debug + PartialOrd + PartialEq + Eq, T: Debug + PartialEq + Eq> Debug for RustyPriorityQueue<P, T>
impl<P: Debug + PartialOrd + PartialEq + Eq, T: Debug + PartialEq + Eq> Debug for RustyPriorityQueue<P, T>
source§impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> Default for RustyPriorityQueue<P, T>
impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> Default for RustyPriorityQueue<P, T>
source§impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> FromIterator<(P, T)> for RustyPriorityQueue<P, T>
impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> FromIterator<(P, T)> for RustyPriorityQueue<P, T>
source§impl<'b, P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> IntoIterator for &'b RustyPriorityQueue<P, T>
impl<'b, P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> IntoIterator for &'b RustyPriorityQueue<P, T>
source§impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> IntoIterator for RustyPriorityQueue<P, T>
impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> IntoIterator for RustyPriorityQueue<P, T>
source§impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> PriorityQueue<P, T> for RustyPriorityQueue<P, T>
impl<P: PartialOrd + PartialEq + Eq, T: PartialEq + Eq> PriorityQueue<P, T> for RustyPriorityQueue<P, T>
Auto Trait Implementations§
impl<P, T> Freeze for RustyPriorityQueue<P, T>
impl<P, T> RefUnwindSafe for RustyPriorityQueue<P, T>where
P: RefUnwindSafe,
T: RefUnwindSafe,
impl<P, T> Send for RustyPriorityQueue<P, T>
impl<P, T> Sync for RustyPriorityQueue<P, T>
impl<P, T> Unpin for RustyPriorityQueue<P, T>
impl<P, T> UnwindSafe for RustyPriorityQueue<P, T>where
P: UnwindSafe,
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more