rust_multistackvm 0.38.0

Stack-based virtual machine on top of rust_multistack crate
Documentation
use crate::multistackvm::*;
use easy_error::{bail, Error};

impl VM {
    pub fn register_alias(&mut self, alias: String, name: String) -> Result<&mut VM, Error> {
        match self.unregister_alias(alias.clone()) {
            Ok(_) => {
                self.name_mapping.insert(alias, name.clone());
            }
            Err(err) => {
                bail!("VM Alias unregistering returns error: {}", err);
            }
        }
        Ok(self)
    }

    pub fn unregister_alias(&mut self, name: String) -> Result<&mut VM, Error> {
        if self.name_mapping.contains_key(&name) {
            self.name_mapping.remove(&name);
        }
        Ok(self)
    }

    pub fn is_alias(&mut self, name: String) -> bool {
        if self.name_mapping.contains_key(&name) {
            return true;
        }
        false
    }

    pub fn get_alias(&mut self, name: String) -> Result<String, Error> {
        if self.name_mapping.contains_key(&name) {
            return match self.name_mapping.get(&name) {
                Some(aname) => Ok(aname.clone()),
                None => bail!("VM Alias {} is registered, but not found.", &name),
            };
        }
        bail!("VM Alias {} not registered", &name);
    }

}