rust_multistackvm/
multistackvm_alias.rs1use crate::multistackvm::*;
2use easy_error::{bail, Error};
3
4impl VM {
5 pub fn register_alias(&mut self, alias: String, name: String) -> Result<&mut VM, Error> {
6 match self.unregister_alias(alias.clone()) {
7 Ok(_) => {
8 self.name_mapping.insert(alias, name.clone());
9 }
10 Err(err) => {
11 bail!("VM Alias unregistering returns error: {}", err);
12 }
13 }
14 Ok(self)
15 }
16
17 pub fn unregister_alias(&mut self, name: String) -> Result<&mut VM, Error> {
18 if self.name_mapping.contains_key(&name) {
19 self.name_mapping.remove(&name);
20 }
21 Ok(self)
22 }
23
24 pub fn is_alias(&mut self, name: String) -> bool {
25 if self.name_mapping.contains_key(&name) {
26 return true;
27 }
28 false
29 }
30
31 pub fn get_alias(&mut self, name: String) -> Result<String, Error> {
32 if self.name_mapping.contains_key(&name) {
33 return match self.name_mapping.get(&name) {
34 Some(aname) => Ok(aname.clone()),
35 None => bail!("VM Alias {} is registered, but not found.", &name),
36 };
37 }
38 bail!("VM Alias {} not registered", &name);
39 }
40
41}