diff --git a/src/backing/pure/mod.rs b/src/backing/pure/mod.rs index 9c43b14..a8b0259 100644 --- a/src/backing/pure/mod.rs +++ b/src/backing/pure/mod.rs @@ -1,5 +1,6 @@ /// Data structures for the "pure" min-queues, supporting duplicates but no arbitrary updates -pub mod binary_heap; +mod binary_heap; +pub use binary_heap::BinaryHeap; /// A data structure usable for backing a "pure" queue pub trait PureBacking: Send + Sync { diff --git a/src/lib.rs b/src/lib.rs index acc4a9c..a43efe3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,11 +2,13 @@ pub mod backing; pub mod queue; use pyo3::prelude::*; -use queue::paired::PairedQueue; +use queue::{IndexedQueue, PairedQueue, PureQueue}; /// Bindings for the Rust queue implementations #[pymodule] fn pyority_queue(m: &Bound<'_, PyModule>) -> PyResult<()> { + m.add_class::()?; m.add_class::()?; + m.add_class::()?; Ok(()) } diff --git a/src/queue/indexed.rs b/src/queue/indexed.rs new file mode 100644 index 0000000..086ad0f --- /dev/null +++ b/src/queue/indexed.rs @@ -0,0 +1,12 @@ +use pyo3::prelude::*; + +#[pyclass] +pub struct IndexedQueue {} + +#[pymethods] +impl IndexedQueue { + #[new] + fn new() -> Self { + Self {} + } +} diff --git a/src/queue/mod.rs b/src/queue/mod.rs index 64f94e2..17366d1 100644 --- a/src/queue/mod.rs +++ b/src/queue/mod.rs @@ -1 +1,7 @@ -pub mod paired; +mod indexed; +mod paired; +mod pure; + +pub use indexed::IndexedQueue; +pub use paired::PairedQueue; +pub use pure::PureQueue; diff --git a/src/queue/paired.rs b/src/queue/paired.rs index bee9265..ab837cf 100644 --- a/src/queue/paired.rs +++ b/src/queue/paired.rs @@ -1,7 +1,7 @@ // A "pure" priority queue that supports duplicates, but not arbitrary deletions or weight updates use crate::backing::{ item::Item, - pure::{binary_heap::BinaryHeap, PureBacking}, + pure::{BinaryHeap, PureBacking}, }; use pyo3::prelude::*; diff --git a/src/queue/pure.rs b/src/queue/pure.rs new file mode 100644 index 0000000..8cf4912 --- /dev/null +++ b/src/queue/pure.rs @@ -0,0 +1,12 @@ +use pyo3::prelude::*; + +#[pyclass] +pub struct PureQueue {} + +#[pymethods] +impl PureQueue { + #[new] + fn new() -> Self { + Self {} + } +} diff --git a/tests/pure_binary_heap.rs b/tests/pure_binary_heap.rs index 597d6eb..9daeaff 100644 --- a/tests/pure_binary_heap.rs +++ b/tests/pure_binary_heap.rs @@ -1,6 +1,6 @@ #[cfg(test)] mod tests { - use pyority_queue::backing::pure::{binary_heap::BinaryHeap, PureBacking}; + use pyority_queue::backing::pure::{BinaryHeap, PureBacking}; #[test] fn test_pure_binary_heap_manual_creation() {