From 039049ab329a9ee8c0e76660b1f9149b1859a750 Mon Sep 17 00:00:00 2001 From: Aaron Weiss Date: Mon, 3 Nov 2014 04:19:12 -0500 Subject: [PATCH] Added documentation for Wrapper and utility functions. --- examples/simple.rs | 4 ++-- src/server/mod.rs | 1 + src/server/utils.rs | 17 ++++++++++++++--- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/examples/simple.rs b/examples/simple.rs index a51a44f..fb027cf 100644 --- a/examples/simple.rs +++ b/examples/simple.rs @@ -19,8 +19,8 @@ fn main() { channels: vec!("#vana".into_string()), options: HashMap::new(), }; - let ircserver = IrcServer::from_config(config).unwrap(); - let server = Wrapper::new(&ircserver); + let irc_server = IrcServer::from_config(config).unwrap(); + let server = Wrapper::new(&irc_server); server.identify().unwrap(); for message in server.iter() { print!("{}", message.into_string()); diff --git a/src/server/mod.rs b/src/server/mod.rs index 23f86e4..0b24548 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -71,6 +71,7 @@ impl<'a, T, U> IrcServer<'a, T, U> where T: IrcWriter, U: IrcReader { } /// Handles messages internally for basic bot functionality + #[experimental] fn handle_message(&self, message: &Message) { if message.command[] == "PING" { self.send(PONG(message.suffix.as_ref().unwrap()[], None)).unwrap(); diff --git a/src/server/utils.rs b/src/server/utils.rs index f746b7b..70d7eb8 100644 --- a/src/server/utils.rs +++ b/src/server/utils.rs @@ -5,9 +5,10 @@ use std::io::IoResult; use data::command::{Command, JOIN, KILL, NICK, OPER, PONG, PRIVMSG, SAMODE, SANICK, USER}; use data::config::Config; use data::kinds::{IrcReader, IrcWriter}; -use server::{IrcServer, Server, ServerIterator}; - +use server::{Server, ServerIterator}; +/// Functionality-providing wrapper for Server +#[experimental] pub struct Wrapper<'a, T, U> where T: IrcWriter, U: IrcReader { server: &'a Server<'a, T, U> + 'a } @@ -27,47 +28,57 @@ impl<'a, T, U> Server<'a, T, U> for Wrapper<'a, T, U> where T: IrcWriter, U: Irc } impl<'a, T, U> Wrapper<'a, T, U> where T: IrcWriter, U: IrcReader { - pub fn new(server: &'a IrcServer<'a, T, U>) -> Wrapper<'a, T, U> { + /// Creates a new Wrapper from the given Server + #[experimental] + pub fn new(server: &'a Server<'a, T, U>) -> Wrapper<'a, T, U> { Wrapper { server: server } } /// Sends a NICK and USER to identify + #[experimental] pub fn identify(&self) -> IoResult<()> { try!(self.server.send(NICK(self.server.config().nickname[]))); self.server.send(USER(self.server.config().username[], "0", self.server.config().realname[])) } /// Sends a PONG with the specified message + #[experimental] pub fn send_pong(&self, msg: &str) -> IoResult<()> { self.server.send(PONG(msg, None)) } /// Joins the specified channel or chanlist + #[experimental] pub fn send_join(&self, chanlist: &str) -> IoResult<()> { self.server.send(JOIN(chanlist, None)) } /// Attempts to oper up using the specified username and password + #[experimental] pub fn send_oper(&self, username: &str, password: &str) -> IoResult<()> { self.server.send(OPER(username, password)) } /// Sends a message to the specified target + #[experimental] pub fn send_privmsg(&self, target: &str, message: &str) -> IoResult<()> { self.server.send(PRIVMSG(target, message)) } /// Kills the target with the provided message + #[experimental] pub fn send_kill(&self, target: &str, message: &str) -> IoResult<()> { self.server.send(KILL(target, message)) } /// Changes the mode of the target + #[experimental] pub fn send_samode(&self, target: &'a str, mode: &'a str, modeparams: Option<&'a str>) -> IoResult<()> { self.server.send(SAMODE(target, mode, modeparams)) } /// Forces a user to change from the old nickname to the new nickname + #[experimental] pub fn send_sanick(&self, old_nick: &str, new_nick: &str) -> IoResult<()> { self.server.send(SANICK(old_nick, new_nick)) }