get_commands() can return a HashMap<str, fn()>, which is command name -> command function

This commit is contained in:
Matthias Beyer 2015-11-28 11:09:10 +01:00
parent a24d3175dd
commit 84571bef0a

View file

@ -4,6 +4,7 @@ use std::fmt::Formatter;
use std::fmt::Result as FMTResult; use std::fmt::Result as FMTResult;
use std::fmt::Display; use std::fmt::Display;
use std::result::Result; use std::result::Result;
use std::collections::HashMap;
use storage::backend::StorageBackend; use storage::backend::StorageBackend;
use self::command::ExecutableCommand; use self::command::ExecutableCommand;
@ -43,6 +44,7 @@ impl Display for ModuleError {
} }
pub type ModuleResult = Result<(), ModuleError>; pub type ModuleResult = Result<(), ModuleError>;
pub type CommandMap<'a> = HashMap<&'a str, fn(&Runtime)>;
pub trait Module { pub trait Module {
@ -51,7 +53,7 @@ pub trait Module {
fn name(&self) -> &'static str; fn name(&self) -> &'static str;
fn shutdown(&self, rt : &Runtime) -> ModuleResult; fn shutdown(&self, rt : &Runtime) -> ModuleResult;
fn get_commands<C: ExecutableCommand>(&self, rt: &Runtime) -> Vec<C>; fn get_commands(&self, rt: &Runtime) -> CommandMap;
} }