use hyperlog_core::log::GraphItem; use crate::shared_engine::SharedEngine; #[derive(Clone)] pub struct Querier { engine: SharedEngine, } impl Querier { pub fn new(engine: &SharedEngine) -> Self { Self { engine: engine.clone(), } } pub fn get_available_roots(&self) -> Option> { self.engine.get_roots() } pub fn get( &self, root: &str, path: impl IntoIterator>, ) -> Option { let path = path .into_iter() .map(|i| i.into()) .filter(|i| !i.is_empty()) .collect::>(); tracing::debug!( "quering: root:({}), path:({}), len: ({}))", root, path.join("."), path.len() ); self.engine .get(root, &path.iter().map(|i| i.as_str()).collect::>()) } }