implement Debug for all structs, provide implementation for message senders

This commit is contained in:
Adrian Malacoda 2017-05-09 23:36:56 -05:00
parent e8b944b836
commit 2baffdacd3
5 changed files with 18 additions and 2 deletions

View File

@ -2,6 +2,7 @@ use {Message, Channel, User};
use std::sync::Arc;
#[derive(Debug)]
pub enum Event {
Message { message: Message }, // A user sends a message
@ -12,6 +13,7 @@ pub enum Event {
UserQuit { channel: Channel, user: User } // A user quits a channel
}
#[derive(Debug)]
pub struct Envelope {
pub from: Option<String>,
pub event: Event,

View File

@ -44,7 +44,7 @@ impl Tenquestionmarks {
let tqm = Tenquestionmarks {
modules: modules
};
tqm
}
@ -128,6 +128,7 @@ impl Tenquestionmarks {
}
}
#[derive(Debug)]
pub struct Message {
content: String,
author: User,
@ -143,6 +144,7 @@ impl Message {
}
}
#[derive(Debug)]
pub struct Channel {
name: String,
description: String,
@ -156,6 +158,7 @@ impl Channel {
}
}
#[derive(Debug)]
pub struct User {
name: String,
sender: Box<MessageSender>
@ -167,6 +170,6 @@ impl User {
}
}
pub trait MessageSender : Sync + Send {
pub trait MessageSender : Sync + Send + std::fmt::Debug {
fn send_message (&self, _: &str) {}
}

View File

@ -13,6 +13,9 @@ use std::sync::Arc;
use std::sync::mpsc::Receiver;
use transformable_channels::mpsc::ExtSender;
use std::fmt;
use std::fmt::{Debug, Formatter};
use {MessageSender, Message, User, Channel};
pub struct DiscordModule {
@ -58,6 +61,12 @@ impl MessageSender for DiscordMessageSender {
}
}
impl Debug for DiscordMessageSender {
fn fmt (&self, formatter: &mut Formatter) -> fmt::Result {
write!(formatter, "DiscordMessageSender {{ channel_id: {:?} }}", self.channel_id)
}
}
impl EventLoop for DiscordModule {
fn run (&self, sender: Box<ExtSender<event::Envelope>>, _: Receiver<Arc<event::Envelope>>) {
let discord = Arc::new(Discord::from_bot_token(&self.token[..]).expect("Discord module: Login failed"));

View File

@ -6,6 +6,7 @@ pub mod random;
pub mod pvn;
pub mod echobox;
pub mod autolink;
pub mod logger;
pub mod loader;

View File

@ -13,6 +13,7 @@ use event::{Event, Envelope};
pub struct StdinModule {}
#[derive(Debug)]
pub struct StdinMessageSender {
name: String
}