use crate::inventory as inv;
use crate::python::error;
use crate::python::node::PyNode;
use pyo3::prelude::*;
#[pyclass(name = "Inventory", unsendable)]
pub struct PyInventory {
inventory: inv::Inventory,
}
impl PyInventory {
pub fn new(inventory: inv::Inventory) -> Self {
Self { inventory }
}
}
#[pymethods]
impl PyInventory {
fn merge_node(&self, _py: Python<'_>, name: &str) -> PyResult<PyNode> {
let node = self.inventory.merge_node(name).map_err(error::to_py_err)?;
Ok(PyNode::new(node))
}
fn node_names(&self) -> Vec<String> {
self.inventory.node_names()
}
}