diff --git a/src/metamgr.rs b/src/metamgr.rs index 1215c09..11dbfe2 100644 --- a/src/metamgr.rs +++ b/src/metamgr.rs @@ -31,12 +31,23 @@ impl MetaMgr { } + pub fn get_metalist(&mut self, idx: i32) -> Option<&Vec::>> { + if idx >= 0 && idx as usize <= self.meta_classes.len() { + return Some(&self.meta_classes[idx as usize].wrap_list); + } + return None; + } + pub fn get_byid(&mut self, idx: i32, id: i64) -> Option<&Rc> { return self.internal_get_byid(idx as usize, id); } + pub fn get_byname(&mut self, idx: i32, name: String) -> Option<&Rc> { + return self.internal_get_byname(idx as usize, name); + } + pub fn internal_get_byid(&mut self, idx: usize, id: i64) -> Option<&Rc> { - if idx >= 0 && idx <= self.meta_classes.len() { + if idx <= self.meta_classes.len() { match self.meta_classes[idx].wrap_id_hash.get(&id) { Some(v) => { return Some(v); @@ -49,4 +60,18 @@ impl MetaMgr { return None; } + pub fn internal_get_byname(&mut self, idx: usize, name: String) -> Option<&Rc> { + if idx <= self.meta_classes.len() { + match self.meta_classes[idx].wrap_name_hash.get(&name) { + Some(v) => { + return Some(v); + } + None => { + + } + } + } + return None; + } + }