try arc instead of box

This commit is contained in:
Adrian Malacoda
2017-02-16 00:16:48 -06:00
parent b238b98b82
commit 7581521b61
3 changed files with 13 additions and 26 deletions

View File

@@ -6,6 +6,8 @@ use plugins::Plugin;
use toml::Table;
use event;
use std::sync::Arc;
use std::sync::mpsc::Sender;
use MessageSender;
@@ -28,18 +30,13 @@ impl DiscordPlugin {
}
}
#[derive(Clone)]
pub struct DiscordMessageSender {
name: String
channel_id: discord::model::ChannelId
}
impl MessageSender for DiscordMessageSender {
fn box_clone (&self) -> Box<MessageSender> {
Box::new((*self).clone())
}
fn send_message (&self, message: &str) {
println!("send to {:?}: {:?}", self.name, message);
println!("send to {:?}: {:?}", self.channel_id, message);
}
}
@@ -52,8 +49,8 @@ impl Plugin for DiscordPlugin {
Ok(Event::MessageCreate(message)) => {
let author = User {
name: message.author.name.clone(),
sender: Box::new(DiscordMessageSender {
name: message.author.name
sender: Arc::new(DiscordMessageSender {
channel_id: message.channel_id
})
};
@@ -61,8 +58,8 @@ impl Plugin for DiscordPlugin {
name: String::from("channel"),
description: String::from(""),
topic: String::from(""),
sender: Box::new(DiscordMessageSender {
name: String::from("channel")
sender: Arc::new(DiscordMessageSender {
channel_id: message.channel_id
})
};

View File

@@ -6,21 +6,17 @@ use toml::Table;
use User;
use MessageSender;
use std::sync::Arc;
use std::sync::mpsc::Sender;
use event::Event;
pub struct StdinPlugin {}
#[derive(Clone)]
pub struct StdinMessageSender {
name: String
}
impl MessageSender for StdinMessageSender {
fn box_clone (&self) -> Box<MessageSender> {
Box::new((*self).clone())
}
fn send_message (&self, message: &str) {
println!("send to {:?}: {:?}", self.name, message);
}
@@ -36,7 +32,7 @@ impl Plugin for StdinPlugin {
fn produce_events<'a>(&'a self, sender: Sender<Event>) {
let user = User {
name: String::from("Dave"),
sender: Box::new(StdinMessageSender {
sender: Arc::new(StdinMessageSender {
name: String::from("Dave")
})
};