simplify plugin code

This commit is contained in:
lumi 2017-05-27 19:40:00 +02:00
commit 1b6b67b332
4 changed files with 6 additions and 6 deletions

View file

@ -84,7 +84,7 @@ impl ComponentBuilder {
pub struct Component {
jid: Jid,
transport: Arc<Mutex<PlainTransport>>,
plugins: HashMap<TypeId, Arc<Box<Plugin>>>,
plugins: HashMap<TypeId, Arc<Plugin>>,
binding: PluginProxyBinding,
dispatcher: Arc<Dispatcher>,
}
@ -99,7 +99,7 @@ impl Component {
pub fn register_plugin<P: Plugin + PluginInit + 'static>(&mut self, mut plugin: P) {
let binding = self.binding.clone();
plugin.bind(binding);
let p = Arc::new(Box::new(plugin) as Box<Plugin>);
let p = Arc::new(plugin) as Arc<Plugin>;
P::init(&self.dispatcher, p.clone());
if self.plugins.insert(TypeId::of::<P>(), p).is_some() {
panic!("registering a plugin that's already registered");