extern crate toml; use std::collections::BTreeMap; use toml::Table; mod plugins; use plugins::Plugin; use plugins::loader::PluginLoader; use plugins::loader::PluginLoaderError; pub struct Tenquestionmarks { plugins: BTreeMap> } impl Tenquestionmarks { pub fn with_plugins (plugins: BTreeMap>) -> Tenquestionmarks { Tenquestionmarks { plugins: plugins } } pub fn from_configuration (configuration: Table) -> Result { let loader = PluginLoader::new(); let plugins = loader.load_from_configuration(configuration)?; Result::Ok(Tenquestionmarks::with_plugins(plugins)) } } pub struct Channel { name: String, description: String, topic: String } pub struct User { name: String } pub struct Message { sender: String, target: String, content: String }