Update Rust structure to better match proposed Python API

This commit is contained in:
Michael Bradley 2025-01-08 23:00:24 +13:00
parent b4ca806d76
commit ffe6a76241
Signed by: MichaelBradley
SSH key fingerprint: SHA256:cj/YZ5VT+QOKncqSkx+ibKTIn0Obg7OIzwzl9BL8EO8
6 changed files with 18 additions and 18 deletions

25
src/queue/keyed.rs Normal file
View file

@ -0,0 +1,25 @@
// A "pure" priority queue that supports duplicates, but not arbitrary deletions or weight updates
use crate::backing::{
item::Item,
pure::{binary_heap::BinaryHeap, PureBacking},
};
use pyo3::prelude::*;
#[pyclass]
pub struct KeyedQueue {
backing: Box<dyn PureBacking<Item<Py<PyAny>, f64>>>,
}
#[pymethods]
impl KeyedQueue {
#[new]
fn new() -> Self {
Self {
backing: Box::new(BinaryHeap::new()),
}
}
fn __len__(self_: PyRef<'_, Self>) -> usize {
self_.backing.len()
}
}