priority-set

A fixed size priority set suitable for no_std use.

Example:

```rust

[derive(PartialEq)]

enum Command { QueryServerA, QueryServerB, }

fn main() { // Create a priority set with 10 slots let mut p: PrioritySet = PrioritySet::new();

// Insert two items
p.insert(Priority(10), Command::QueryServerA);
p.insert(Priority(20), Command::QueryServerB);
p.insert(Priority(30), Command::QueryServerA);

// We inserted a duplicate command, so its priority was updated, but no new item was added
assert_eq!(p.len(), 2);

// Pops the highest priority item, which is QueryServerA with Priority(30)
assert_eq!(p.pop(), Some(Command::QueryServerA));
assert_eq!(p.pop(), Some(Command::QueryServerB));
assert_eq!(p.pop(), None);

} ```

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.