summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJokler <jokler.contact@gmail.com>2017-10-07 17:14:06 +0200
committerJokler <jokler.contact@gmail.com>2017-10-11 15:41:32 +0200
commit735f59e3421d9cd9aa908318880467e93af2d788 (patch)
tree3199ea6e8e8cc9018b1e73166ba30ca5174e0cb3 /src
parenta0c65a073c5bb88ccd36a22ee37685d679b3f3a1 (diff)
downloadfrippy-735f59e3421d9cd9aa908318880467e93af2d788.tar.gz
frippy-735f59e3421d9cd9aa908318880467e93af2d788.zip
Add the Display trait to Plugins
Diffstat (limited to 'src')
-rw-r--r--src/plugin.rs23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/plugin.rs b/src/plugin.rs
index 473cab1..fdaad43 100644
--- a/src/plugin.rs
+++ b/src/plugin.rs
@@ -2,7 +2,7 @@ use std::fmt;
use irc::client::prelude::*;
use irc::error::Error as IrcError;
-pub trait Plugin: Send + Sync + fmt::Debug {
+pub trait Plugin: Send + Sync + fmt::Display + fmt::Debug {
fn is_allowed(&self, server: &IrcServer, message: &Message) -> bool;
fn execute(&mut self, server: &IrcServer, message: &Message) -> Result<(), IrcError>;
}
@@ -10,25 +10,22 @@ pub trait Plugin: Send + Sync + fmt::Debug {
#[macro_export]
macro_rules! register_plugin {
($t:ident) => {
- #[derive(Debug)]
- pub struct $t;
-
- impl $t {
- pub fn new() -> $t {
- $t { }
- }
- }
- };
+ use std::fmt;
- ($t:ident, $element: ident: $ty: ty) => {
#[derive(Debug)]
pub struct $t {
- $element: $ty
+ _name: &'static str,
+ }
+
+ impl fmt::Display for $t {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ write!(f, "{}", self._name)
+ }
}
impl $t {
pub fn new() -> $t {
- $t { $element: <$ty>::new() }
+ $t { _name: stringify!($t) }
}
}
};