aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/command.rs89
-rw-r--r--src/event.rs6
-rw-r--r--src/reply.rs280
3 files changed, 185 insertions, 190 deletions
diff --git a/src/command.rs b/src/command.rs
index 08d07d5..b07f95c 100644
--- a/src/command.rs
+++ b/src/command.rs
@@ -6,11 +6,8 @@ use std::iter::Extend;
use message::{ Message, MsgType };
-pub type CS<'a> = Cow<'a, str>;
-
#[derive(Debug, Hash, Clone, PartialEq, Eq)]
-#[doc(disables)]
-pub enum Command<'a> {
+pub enum Command {
/// ```text
/// 3.1.1 Password message
///
@@ -30,7 +27,7 @@ pub enum Command<'a> {
///
/// PASS secretpasswordhere
/// ```
- PASS(CS<'a>),
+ PASS(String),
/// ```text
/// 3.1.2 Nick message
@@ -57,7 +54,7 @@ pub enum Command<'a> {
/// ; Server telling that WiZ changed his
/// nickname to Kilroy.
/// ```
- NICK(CS<'a>),
+ NICK(String),
/// ```text
/// 3.1.3 User message
@@ -92,7 +89,7 @@ pub enum Command<'a> {
/// "Ronnie Reagan", and asking to be set
/// invisible.
/// ```
- USER(CS<'a>, CS<'a>, CS<'a>, CS<'a>),
+ USER(String, String, String, String),
/// ```text
/// 3.1.4 Oper message
@@ -116,7 +113,7 @@ pub enum Command<'a> {
/// using a username of "foo" and "bar"
/// as the password.
/// ```
- OPER(CS<'a>, CS<'a>),
+ OPER(String, String),
/// ```text
/// 3.1.5 User mode message
@@ -181,7 +178,7 @@ pub enum Command<'a> {
/// MODE WiZ -o ; WiZ 'deopping' (removing operator
/// status).
/// ```
- UMODE(CS<'a>),
+ UMODE(String),
/// ```text
/// 3.1.6 Service message
@@ -217,7 +214,7 @@ pub enum Command<'a> {
/// service will only be available on
/// servers which name matches "*.fr".
/// ```
- SERVICE(CS<'a>, CS<'a>, CS<'a>, CS<'a>, CS<'a>, CS<'a>),
+ SERVICE(String, String, String, String, String, String),
/// ```text
/// 3.1.7 Quit
@@ -239,7 +236,7 @@ pub enum Command<'a> {
/// :syrk!kalt@millennium.stealth.net QUIT :Gone to have lunch ; User
/// syrk has quit IRC to have lunch.
/// ```
- QUIT(Option<CS<'a>>),
+ QUIT(Option<String>),
/// ```text
/// 3.1.8 Squit
@@ -275,7 +272,7 @@ pub enum Command<'a> {
/// "cm22.eng.umd.edu" from the net with
/// comment "Server out of control".
/// ```
- SQUIT(CS<'a>, CS<'a>),
+ SQUIT(String, String),
/// ```text
/// 3.2.1 Join message
@@ -338,7 +335,7 @@ pub enum Command<'a> {
/// :WiZ!jto@tolsun.oulu.fi JOIN #Twilight_zone ; JOIN message from WiZ
/// on channel #Twilight_zone
/// ```
- JOIN(Vec<CS<'a>>, Vec<CS<'a>>),
+ JOIN(Vec<String>, Vec<String>),
/// ```text
/// 3.2.2 Part message
@@ -374,7 +371,7 @@ pub enum Command<'a> {
/// "#playzone" with the message "I
/// lost".
/// ```
- PART(Vec<CS<'a>>, Option<CS<'a>>),
+ PART(Vec<String>, Option<String>),
/// ```text
/// 3.2.3 Channel mode message
@@ -459,7 +456,7 @@ pub enum Command<'a> {
/// MODE !12345ircd O ; Command to ask who the channel
/// creator for "!12345ircd" is
/// ```
- MODE(CS<'a>, Vec<(CS<'a>, CS<'a>)>),
+ MODE(String, Vec<(String, String)>),
/// ```text```
/// 3.2.4 Topic message
@@ -494,7 +491,7 @@ pub enum Command<'a> {
/// TOPIC #test ; Command to check the topic for
/// #test.
/// ```
- TOPIC(CS<'a>, Option<CS<'a>>),
+ TOPIC(String, Option<String>),
/// ```text
/// 3.2.5 Names message
@@ -531,7 +528,7 @@ pub enum Command<'a> {
/// NAMES ; Command to list all visible
/// channels and users
/// ```
- NAMES(Vec<CS<'a>>, Option<CS<'a>>),
+ NAMES(Vec<String>, Option<String>),
/// ```text
/// 3.2.6 List message
@@ -560,7 +557,7 @@ pub enum Command<'a> {
/// LIST #twilight_zone,#42 ; Command to list channels
/// #twilight_zone and #42
/// ```
- LIST(Vec<CS<'a>>, Option<CS<'a>>),
+ LIST(Vec<String>, Option<String>),
/// ```text
/// 3.2.7 Invite message
@@ -598,7 +595,7 @@ pub enum Command<'a> {
/// INVITE Wiz #Twilight_Zone ; Command to invite WiZ to
/// #Twilight_zone
/// ```
- INVITE(CS<'a>, CS<'a>),
+ INVITE(String, String),
/// ```text
/// 3.2.8 Kick command
@@ -639,7 +636,7 @@ pub enum Command<'a> {
/// ; KICK message on channel #Finnish
/// from WiZ to remove John from channel
/// ```
- KICK(Vec<CS<'a>>, Vec<CS<'a>>, Option<CS<'a>>),
+ KICK(Vec<String>, Vec<String>, Option<String>),
/// ```text
/// 3.3.1 Private messages
@@ -708,7 +705,7 @@ pub enum Command<'a> {
/// a host which has a name matching
/// *.edu.
/// ```
- PRIVMSG(CS<'a>, CS<'a>),
+ PRIVMSG(String, String),
/// ```text
/// 3.3.2 Notice
@@ -731,7 +728,7 @@ pub enum Command<'a> {
///
/// See PRIVMSG for more details on replies and examples.
/// ```
- NOTICE(CS<'a>, CS<'a>),
+ NOTICE(String, String),
/// ```text
/// 3.4.1 Motd message
@@ -748,7 +745,7 @@ pub enum Command<'a> {
/// RPL_MOTDSTART RPL_MOTD
/// RPL_ENDOFMOTD ERR_NOMOTD
/// ```
- MOTD(Option<CS<'a>>),
+ MOTD(Option<String>),
/// ```text
/// 3.4.2 Lusers message
@@ -771,7 +768,7 @@ pub enum Command<'a> {
/// RPL_LUSERUNKOWN RPL_LUSERCHANNELS
/// RPL_LUSERME ERR_NOSUCHSERVER
/// ```
- LUSERS(Option<(CS<'a>, Option<CS<'a>>)>),
+ LUSERS(Option<(String, Option<String>)>),
/// ```text
/// 3.4.3 Version message
@@ -794,7 +791,7 @@ pub enum Command<'a> {
/// VERSION tolsun.oulu.fi ; Command to check the version of
/// server "tolsun.oulu.fi".
/// ```
- VERSION(Option<CS<'a>>),
+ VERSION(Option<String>),
/// ```text
/// 3.4.4 Stats message
@@ -843,7 +840,7 @@ pub enum Command<'a> {
/// STATS m ; Command to check the command usage
/// for the server you are connected to
/// ```
- STATS(Option<(CS<'a>, Option<CS<'a>>)>),
+ STATS(Option<(String, Option<String>)>),
/// ```text
/// 3.4.5 Links message
@@ -873,7 +870,7 @@ pub enum Command<'a> {
/// *.bu.edu as seen by the first server
/// matching *.edu.
/// ```
- LINKS(Option<(Option<CS<'a>>, CS<'a>)>),
+ LINKS(Option<(Option<String>, String)>),
/// ```text
/// 3.4.6 Time message
@@ -895,7 +892,7 @@ pub enum Command<'a> {
/// TIME tolsun.oulu.fi ; check the time on the server
/// "tolson.oulu.fi"
/// ```
- TIME(Option<CS<'a>>),
+ TIME(Option<String>),
/// ```text
/// 3.4.7 Connect message
@@ -924,7 +921,7 @@ pub enum Command<'a> {
/// CONNECT tolsun.oulu.fi 6667 ; Command to attempt to connect local
/// server to tolsun.oulu.fi on port 6667
///
- CONNECT(CS<'a>, i16, Option<CS<'a>>),
+ CONNECT(String, i16, Option<String>),
/// ```text
/// 3.4.8 Trace message
@@ -984,7 +981,7 @@ pub enum Command<'a> {
/// TRACE *.oulu.fi ; TRACE to a server matching
/// *.oulu.fi
/// ```
- TRACE(Option<CS<'a>>),
+ TRACE(Option<String>),
/// ```text
/// 3.4.9 Admin command
@@ -1013,7 +1010,7 @@ pub enum Command<'a> {
/// ADMIN syrk ; ADMIN request for the server to
/// which the user syrk is connected
/// ```
- ADMIN(Option<CS<'a>>),
+ ADMIN(Option<String>),
/// ```text
/// 3.4.10 Info command
@@ -1041,7 +1038,7 @@ pub enum Command<'a> {
/// INFO Angel ; request info from the server that
/// Angel is connected to.
/// ```
- INFO(Option<CS<'a>>),
+ INFO(Option<String>),
/// ```text
/// 3.5.1 Servlist message
@@ -1058,7 +1055,7 @@ pub enum Command<'a> {
///
/// RPL_SERVLIST RPL_SERVLISTEND
/// ```
- SERVLIST(Option<(CS<'a>, Option<CS<'a>>)>),
+ SERVLIST(Option<(String, Option<String>)>),
/// ```text
/// 3.5.2 Squery
@@ -1082,7 +1079,7 @@ pub enum Command<'a> {
/// ; Message to the service with name
/// dict@irc.fr.
/// ```
- SQUERY(CS<'a>, CS<'a>),
+ SQUERY(String, String),
/// ```text
/// 3.6.1 Who query
@@ -1118,7 +1115,7 @@ pub enum Command<'a> {
/// match against "jto*" if they are an
/// operator.
/// ```
- WHO(Option<CS<'a>>, bool),
+ WHO(Option<String>, bool),
/// ```text
/// 3.6.2 Whois query
@@ -1158,7 +1155,7 @@ pub enum Command<'a> {
/// WHOIS eff.org trillian ; ask server eff.org for user
/// information about trillian
/// ```
- WHOIS(Option<CS<'a>>, Vec<CS<'a>>),
+ WHOIS(Option<String>, Vec<String>),
/// ```text
/// 3.6.3 Whowas
@@ -1197,7 +1194,7 @@ pub enum Command<'a> {
/// "Trillian" from the first server
/// found to match "*.edu".
/// ```
- WHOWAS(Vec<CS<'a>>, Option<(CS<'a>, Option<CS<'a>>)>),
+ WHOWAS(Vec<String>, Option<(String, Option<String>)>),
/// ```text
/// 3.7.1 Kill message
@@ -1252,7 +1249,7 @@ pub enum Command<'a> {
/// recommendation, it is also widely recognized that not even operators
/// should be allowed to kill users on remote servers.
/// ```
- KILL(CS<'a>, CS<'a>),
+ KILL(String, String),
/// ```text
/// 3.7.2 Ping message
@@ -1288,7 +1285,7 @@ pub enum Command<'a> {
/// PING :irc.funet.fi ; Ping message sent by server
/// "irc.funet.fi"
/// ```
- PING(CS<'a>, Option<CS<'a>>),
+ PING(String, Option<String>),
/// ```text
/// 3.7.3 Pong message
@@ -1310,7 +1307,7 @@ pub enum Command<'a> {
/// PONG csd.bu.edu tolsun.oulu.fi ; PONG message from csd.bu.edu to
/// tolsun.oulu.fi
/// ```
- PONG(CS<'a>, Option<CS<'a>>),
+ PONG(String, Option<String>),
/// ```text
/// 3.7.4 Error
@@ -1349,7 +1346,7 @@ pub enum Command<'a> {
/// ; Same ERROR message as above but
/// sent to user WiZ on the other server.
/// ```
- ERROR(CS<'a>),
+ ERROR(String),
/// ```text
/// 4.1 Away
@@ -1381,7 +1378,7 @@ pub enum Command<'a> {
/// AWAY :Gone to lunch. Back in 5 ; Command to set away message to
/// "Gone to lunch. Back in 5".
/// ```
- AWAY(Option<CS<'a>>),
+ AWAY(Option<String>),
/// ```text
/// 4.2 Rehash message
@@ -1488,7 +1485,7 @@ pub enum Command<'a> {
/// server named "tolsun.oulu.fi" is
/// running.
/// ```
- SUMMON(CS<'a>, Option<(CS<'a>, Option<CS<'a>>)>),
+ SUMMON(String, Option<(String, Option<String>)>),
/// ```text
/// 4.6 Users
@@ -1522,7 +1519,7 @@ pub enum Command<'a> {
/// USERS eff.org ; request a list of users logged in
/// on server eff.org
/// ```
- USERS(Option<CS<'a>>),
+ USERS(Option<String>),
/// ```text
/// 4.7 Operwall message
@@ -1551,7 +1548,7 @@ pub enum Command<'a> {
/// CONNECT message it received from
/// Joshua and acted upon.
/// ```
- WALLOPS(CS<'a>),
+ WALLOPS(String),
/// ```text
/// 4.8 Userhost message
@@ -1576,7 +1573,7 @@ pub enum Command<'a> {
/// :ircd.stealth.net 302 yournick :syrk=+syrk@millennium.stealth.net
/// ; Reply for user syrk
/// ```
- USERHOST(Vec<CS<'a>>),
+ USERHOST(Vec<String>),
}
/*impl<'a> Clone for Command<'a> {
diff --git a/src/event.rs b/src/event.rs
index 488ac04..8a7e3b7 100644
--- a/src/event.rs
+++ b/src/event.rs
@@ -4,9 +4,9 @@ use command;
use reply;
#[derive(Debug, Clone, PartialEq)]
-pub enum Event<'a> {
- Command(command::Command<'a>),
- Reply(reply::Reply<'a>),
+pub enum Event {
+ Command(command::Command),
+ Reply(reply::Reply),
Connected,
Disconnected
}
diff --git a/src/reply.rs b/src/reply.rs
index f7c09e6..cb00806 100644
--- a/src/reply.rs
+++ b/src/reply.rs
@@ -5,23 +5,21 @@ use std::borrow::Cow::*;
use ::{ Result, IrscError };
use ::message::{ MsgType, Message };
-pub type CS<'a> = Cow<'a, str>;
-
#[allow(non_camel_case_types)]
#[derive(Debug, Hash, Clone, PartialEq, Eq)]
-pub enum Reply<'a> {
+pub enum Reply {
/// 001 RPL_WELCOME
/// "Welcome to the Internet Relay Network
/// <nick>!<user>@<host>"
- RPL_WELCOME(CS<'a>),
+ RPL_WELCOME(String),
/// 002 RPL_YOURHOST
/// "Your host is <servername>, running version <ver>"
- RPL_YOURHOST(CS<'a>),
+ RPL_YOURHOST(String),
/// 003 RPL_CREATED
/// "This server was created <date>"
- RPL_CREATED(CS<'a>),
+ RPL_CREATED(String),
/// 004 RPL_MYINFO
/// "<servername> <version> <available user modes>
@@ -30,7 +28,7 @@ pub enum Reply<'a> {
/// - The server sends Replies 001 to 004 to a user upon
/// successful registration.
///
- RPL_MYINFO(CS<'a>),
+ RPL_MYINFO(String),
/// 005 RPL_BOUNCE
/// "Try server <server name>, port <port number>"
@@ -39,7 +37,7 @@ pub enum Reply<'a> {
/// server. This is often used when the connection is
/// refused because the server is already full.
///
- RPL_BOUNCE(CS<'a>),
+ RPL_BOUNCE(String),
/// 302 RPL_USERHOST
/// ":*1<reply> *( " " <reply> )"
@@ -55,7 +53,7 @@ pub enum Reply<'a> {
/// whether the client has set an AWAY message or not
/// respectively.
///
- RPL_USERHOST(CS<'a>),
+ RPL_USERHOST(String),
/// 303 RPL_ISON
/// ":*1<nick> *( " " <nick> )"
@@ -63,15 +61,15 @@ pub enum Reply<'a> {
/// - Reply format used by ISON to list replies to the
/// query list.
///
- RPL_ISON(CS<'a>),
+ RPL_ISON(String),
/// 301 RPL_AWAY
/// "<nick> :<away message>"
- RPL_AWAY(CS<'a>),
+ RPL_AWAY(String),
/// 305 RPL_UNAWAY
/// ":You are no longer marked as being away"
- RPL_UNAWAY(CS<'a>),
+ RPL_UNAWAY(String),
/// 306 RPL_NOWAWAY
/// ":You have been marked as being away"
@@ -83,27 +81,27 @@ pub enum Reply<'a> {
/// Replies RPL_UNAWAY and RPL_NOWAWAY are sent when the
/// client removes and sets an AWAY message.
///
- RPL_NOWAWAY(CS<'a>),
+ RPL_NOWAWAY(String),
/// 311 RPL_WHOISUSER
/// "<nick> <user> <host> * :<real name>"
- RPL_WHOISUSER(CS<'a>),
+ RPL_WHOISUSER(String),
/// 312 RPL_WHOISSERVER
/// "<nick> <server> :<server info>"
- RPL_WHOISSERVER(CS<'a>),
+ RPL_WHOISSERVER(String),
/// 313 RPL_WHOISOPERATOR
/// "<nick> :is an IRC operator"
- RPL_WHOISOPERATOR(CS<'a>),
+ RPL_WHOISOPERATOR(String),
/// 317 RPL_WHOISIDLE
/// "<nick> <integer> :seconds idle"
- RPL_WHOISIDLE(CS<'a>),
+ RPL_WHOISIDLE(String),
/// 318 RPL_ENDOFWHOIS
/// "<nick> :End of WHOIS list"
- RPL_ENDOFWHOIS(CS<'a>),
+ RPL_ENDOFWHOIS(String),
/// 319 RPL_WHOISCHANNELS
/// "<nick> :*( ( "@" / "+" ) <channel> " " )"
@@ -123,11 +121,11 @@ pub enum Reply<'a> {
/// channel. The RPL_ENDOFWHOIS reply is used to mark
/// the end of processing a WHOIS message.
///
- RPL_WHOISCHANNELS(CS<'a>),
+ RPL_WHOISCHANNELS(String),
/// 314 RPL_WHOWASUSER
/// "<nick> <user> <host> * :<real name>"
- RPL_WHOWASUSER(CS<'a>),
+ RPL_WHOWASUSER(String),
/// 369 RPL_ENDOFWHOWAS
/// "<nick> :End of WHOWAS"
@@ -139,7 +137,7 @@ pub enum Reply<'a> {
/// be RPL_ENDOFWHOWAS (even if there was only one reply
/// and it was an error).
///
- RPL_ENDOFWHOWAS(CS<'a>),
+ RPL_ENDOFWHOWAS(String),
/// 321 RPL_LISTSTART
/// Obsolete. Not used.
@@ -148,7 +146,7 @@ pub enum Reply<'a> {
/// 322 RPL_LIST
/// "<channel> <# visible> :<topic>"
- RPL_LIST(CS<'a>),
+ RPL_LIST(String),
/// 323 RPL_LISTEND
/// ":End of LIST"
@@ -158,21 +156,21 @@ pub enum Reply<'a> {
/// command. If there are no channels available to return,
/// only the end reply MUST be sent.
///
- RPL_LISTEND(CS<'a>),
+ RPL_LISTEND(String),
/// 325 RPL_UNIQOPIS
/// "<channel> <nickname>"
///
- RPL_UNIQOPIS(CS<'a>),
+ RPL_UNIQOPIS(String),
/// 324 RPL_CHANNELMODEIS
/// "<channel> <mode> <mode params>"
///
- RPL_CHANNELMODEIS(CS<'a>),
+ RPL_CHANNELMODEIS(String),
/// 331 RPL_NOTOPIC
/// "<channel> :No topic is set"
- RPL_NOTOPIC(CS<'a>),
+ RPL_NOTOPIC(String),
/// 332 RPL_TOPIC
/// "<channel> :<topic>"
@@ -182,7 +180,7 @@ pub enum Reply<'a> {
/// the topic is set, RPL_TOPIC is sent back else
/// RPL_NOTOPIC.
///
- RPL_TOPIC(CS<'a>),
+ RPL_TOPIC(String),
/// 341 RPL_INVITING
/// "<channel> <nick>"
@@ -191,7 +189,7 @@ pub enum Reply<'a> {
/// attempted INVITE message was successful and is
/// being passed onto the end client.
///
- RPL_INVITING(CS<'a>),
+ RPL_INVITING(String),
/// 342 RPL_SUMMONING
/// "<user> :Summoning user to IRC"
@@ -199,11 +197,11 @@ pub enum Reply<'a> {
/// - Returned by a server answering a SUMMON message to
/// indicate that it is summoning that user.
///
- RPL_SUMMONING(CS<'a>),
+ RPL_SUMMONING(String),
/// 346 RPL_INVITELIST
/// "<channel> <invitemask>"
- RPL_INVITELIST(CS<'a>),
+ RPL_INVITELIST(String),
/// 347 RPL_ENDOFINVITELIST
/// "<channel> :End of channel invite list"
@@ -215,11 +213,11 @@ pub enum Reply<'a> {
/// After the masks have been listed (or if none present) a
/// RPL_ENDOFINVITELIST MUST be sent.
///
- RPL_ENDOFINVITELIST(CS<'a>),
+ RPL_ENDOFINVITELIST(String),
/// 348 RPL_EXCEPTLIST
/// "<channel> <exceptionmask>"
- RPL_EXCEPTLIST(CS<'a>),
+ RPL_EXCEPTLIST(String),
/// 349 RPL_ENDOFEXCEPTLIST
/// "<channel> :End of channel exception list"
@@ -231,7 +229,7 @@ pub enum Reply<'a> {
/// After the masks have been listed (or if none present)
/// a RPL_ENDOFEXCEPTLIST MUST be sent.
///
- RPL_ENDOFEXCEPTLIST(CS<'a>),
+ RPL_ENDOFEXCEPTLIST(String),
/// 351 RPL_VERSION
/// "<version>.<debuglevel> <server> :<comments>"
@@ -245,14 +243,14 @@ pub enum Reply<'a> {
/// The "comments" field may contain any comments about
/// the version or further version details.
///
- RPL_VERSION(CS<'a>),
+ RPL_VERSION(String),
/// 352 RPL_WHOREPLY
/// "<channel> <user> <host> <server> <nick>
/// ( "H" / "G" > ["*"] [ ( "@" / "+" ) ]
/// :<hopcount> <real name>"
///
- RPL_WHOREPLY(CS<'a>),
+ RPL_WHOREPLY(String),
/// 315 RPL_ENDOFWHO
/// "<name> :End of WHO list"
@@ -265,7 +263,7 @@ pub enum Reply<'a> {
/// after processing each list item with <name> being
/// the item.
///
- RPL_ENDOFWHO(CS<'a>),
+ RPL_ENDOFWHO(String),
/// 353 RPL_NAMREPLY
/// "( "=" / "*" / "@" ) <channel>
@@ -273,7 +271,7 @@ pub enum Reply<'a> {
/// - "@" is used for secret channels, "*" for private
/// channels, and "=" for others (public channels).
///
- RPL_NAMREPLY(CS<'a>),
+ RPL_NAMREPLY(String),
/// 366 RPL_ENDOFNAMES
/// "<channel> :End of NAMES list"
@@ -288,11 +286,11 @@ pub enum Reply<'a> {
/// RPL_NAMEREPLY messages with a RPL_ENDOFNAMES to mark
/// the end.
///
- RPL_ENDOFNAMES(CS<'a>),
+ RPL_ENDOFNAMES(String),
/// 364 RPL_LINKS
/// "<mask> <server> :<hopcount> <server info>"
- RPL_LINKS(CS<'a>),
+ RPL_LINKS(String),
/// 365 RPL_ENDOFLINKS
/// "<mask> :End of LINKS list"
@@ -301,11 +299,11 @@ pub enum Reply<'a> {
/// replies back using the RPL_LINKS numeric and mark the
/// end of the list using an RPL_ENDOFLINKS reply.
///
- RPL_ENDOFLINKS(CS<'a>),
+ RPL_ENDOFLINKS(String),
/// 367 RPL_BANLIST
/// "<channel> <banmask>"
- RPL_BANLIST(CS<'a>),
+ RPL_BANLIST(String),
/// 368 RPL_ENDOFBANLIST
/// "<channel> :End of channel ban list"
@@ -317,11 +315,11 @@ pub enum Reply<'a> {
/// banmasks have been listed (or if none present) a
/// RPL_ENDOFBANLIST MUST be sent.
///
- RPL_ENDOFBANLIST(CS<'a>),
+ RPL_ENDOFBANLIST(String),
/// 371 RPL_INFO
/// ":<string>"
- RPL_INFO(CS<'a>),
+ RPL_INFO(String),
/// 374 RPL_ENDOFINFO
/// ":End of INFO list"
@@ -331,15 +329,15 @@ pub enum Reply<'a> {
/// with a RPL_ENDOFINFO reply to indicate the end of the
/// replies.
///
- RPL_ENDOFINFO(CS<'a>),
+ RPL_ENDOFINFO(String),
/// 375 RPL_MOTDSTART
/// ":- <server> Message of the day - "
- RPL_MOTDSTART(CS<'a>),
+ RPL_MOTDSTART(String),
/// 372 RPL_MOTD
/// ":- <text>"
- RPL_MOTD(CS<'a>),
+ RPL_MOTD(String),
/// 376 RPL_ENDOFMOTD
/// ":End of MOTD command"
@@ -351,7 +349,7 @@ pub enum Reply<'a> {
/// by a RPL_MOTDSTART (before the RPL_MOTDs) and an
/// RPL_ENDOFMOTD (after).
///
- RPL_ENDOFMOTD(CS<'a>),
+ RPL_ENDOFMOTD(String),
/// 381 RPL_YOUREOPER
/// ":You are now an IRC operator"
@@ -360,7 +358,7 @@ pub enum Reply<'a> {
/// just successfully issued an OPER message and gained
/// operator status.
///
- RPL_YOUREOPER(CS<'a>),
+ RPL_YOUREOPER(String),
/// 382 RPL_REHASHING
/// "<config file> :Rehashing"
@@ -369,7 +367,7 @@ pub enum Reply<'a> {
/// a REHASH message, an RPL_REHASHING is sent back to
/// the operator.
///
- RPL_REHASHING(CS<'a>),
+ RPL_REHASHING(String),
/// 383 RPL_YOURESERVICE
/// "You are service <servicename>"
@@ -377,7 +375,7 @@ pub enum Reply<'a> {
/// - Sent by the server to a service upon successful
/// registration.
///
- RPL_YOURESERVICE(CS<'a>),
+ RPL_YOURESERVICE(String),
/// 391 RPL_TIME
/// "<server> :<string showing server's local time>"
@@ -388,19 +386,19 @@ pub enum Reply<'a> {
/// time there. There is no further requirement for the
/// time string.
///
- RPL_TIME(CS<'a>),
+ RPL_TIME(String),
/// 392 RPL_USERSSTART
/// ":UserID Terminal Host"
- RPL_USERSSTART(CS<'a>),
+ RPL_USERSSTART(String),
/// 393 RPL_USERS
/// ":<username> <ttyline> <hostname>"
- RPL_USERS(CS<'a>),
+ RPL_USERS(String),
/// 394 RPL_ENDOFUSERS
/// ":End of users"
- RPL_ENDOFUSERS(CS<'a>),
+ RPL_ENDOFUSERS(String),
/// 395 RPL_NOUSERS
/// ":Nobody logged in"
@@ -412,59 +410,59 @@ pub enum Reply<'a> {
/// or a single RPL_NOUSER. Following this is
/// RPL_ENDOFUSERS.
///
- RPL_NOUSERS(CS<'a>),
+ RPL_NOUSERS(String),
/// 200 RPL_TRACELINK
/// "Link <version & debug level> <destination>
/// <next server> V<protocol version>
/// <link uptime in seconds> <backstream sendq>
/// <upstream sendq>"
- RPL_TRACELINK(CS<'a>),
+ RPL_TRACELINK(String),
/// 201 RPL_TRACECONNECTING
/// "Try. <class> <server>"
- RPL_TRACECONNECTING(CS<'a>),
+ RPL_TRACECONNECTING(String),
/// 202 RPL_TRACEHANDSHAKE
/// "H.S. <class> <server>"
- RPL_TRACEHANDSHAKE(CS<'a>),
+ RPL_TRACEHANDSHAKE(String),
/// 203 RPL_TRACEUNKNOWN
/// "???? <class> [<client IP address in dot form>]"
- RPL_TRACEUNKNOWN(CS<'a>),
+ RPL_TRACEUNKNOWN(String),
/// 204 RPL_TRACEOPERATOR
/// "Oper <class> <nick>"
- RPL_TRACEOPERATOR(CS<'a>),
+ RPL_TRACEOPERATOR(String),
/// 205 RPL_TRACEUSER
/// "User <class> <nick>"
- RPL_TRACEUSER(CS<'a>),
+ RPL_TRACEUSER(String),
/// 206 RPL_TRACESERVER
/// "Serv <class> <int>S <int>C <server>
/// <nick!user|*!*>@<host|server> V<protocol version>"
- RPL_TRACESERVER(CS<'a>),
+ RPL_TRACESERVER(String),
/// 207 RPL_TRACESERVICE
/// "Service <class> <name> <type> <active type>"
- RPL_TRACESERVICE(CS<'a>),
+ RPL_TRACESERVICE(String),
/// 208 RPL_TRACENEWTYPE
/// "<newtype> 0 <client name>"
- RPL_TRACENEWTYPE(CS<'a>),
+ RPL_TRACENEWTYPE(String),
/// 209 RPL_TRACECLASS
/// "Class <class> <count>"
- RPL_TRACECLASS(CS<'a>),
+ RPL_TRACECLASS(String),
/// 210 RPL_TRACERECONNECT
/// Unused.
- RPL_TRACERECONNECT(CS<'a>),
+ RPL_TRACERECONNECT(String),
/// 261 RPL_TRACELOG
/// "File <logfile> <debug level>"
- RPL_TRACELOG(CS<'a>),
+ RPL_TRACELOG(String),
/// 262 RPL_TRACEEND
/// "<server name> <version & debug level> :End of TRACE"
@@ -491,7 +489,7 @@ pub enum Reply<'a> {
/// being displayed anyway.
/// RPL_TRACEEND is sent to indicate the end of the list.
///
- RPL_TRACEEND(CS<'a>),
+ RPL_TRACEEND(String),
/// 211 RPL_STATSLINKINFO
/// "<linkname> <sendq> <sent messages>
@@ -509,26 +507,26 @@ pub enum Reply<'a> {
/// open> indicates how long ago the connection was
/// opened, in seconds.
///
- RPL_STATSLINKINFO(CS<'a>),
+ RPL_STATSLINKINFO(String),
/// 212 RPL_STATSCOMMANDS
/// "<command> <count> <byte count> <remote count>"
///
/// - reports statistics on commands usage.
///
- RPL_STATSCOMMANDS(CS<'a>),
+ RPL_STATSCOMMANDS(String),
/// 219 RPL_ENDOFSTATS
/// "<stats letter> :End of STATS report"
///
- RPL_ENDOFSTATS(CS<'a>),
+ RPL_ENDOFSTATS(String),
/// 242 RPL_STATSUPTIME
/// ":Server Up %d days %d:%02d:%02d"
///
/// - reports the server uptime.
///
- RPL_STATSUPTIME(CS<'a>),
+ RPL_STATSUPTIME(String),
/// 243 RPL_STATSOLINE
/// "O <hostmask> * <name>"
@@ -536,7 +534,7 @@ pub enum Reply<'a> {
/// - reports the allowed hosts from where user may become IRC
/// operators.
///
- RPL_STATSOLINE(CS<'a>),
+ RPL_STATSOLINE(String),
/// 221 RPL_UMODEIS
/// "<user mode string>"
@@ -544,12 +542,12 @@ pub enum Reply<'a> {
/// - To answer a query about a client's own mode,
/// RPL_UMODEIS is sent back.
///
- RPL_UMODEIS(CS<'a>),
+ RPL_UMODEIS(String),
/// 234 RPL_SERVLIST
/// "<name> <server> <mask> <type> <hopcount> <info>"
///
- RPL_SERVLIST(CS<'a>),
+ RPL_SERVLIST(String),
/// 235 RPL_SERVLISTEND
/// "<mask> <type> :End of service listing"
@@ -561,24 +559,24 @@ pub enum Reply<'a> {
/// services have been listed (or if none present) a
/// RPL_SERVLISTEND MUST be sent.
///
- RPL_SERVLISTEND(CS<'a>),
+ RPL_SERVLISTEND(String),
/// 251 RPL_LUSERCLIENT
/// ":There are <integer> users and <integer>
/// services on <integer> servers"
- RPL_LUSERCLIENT(CS<'a>),
+ RPL_LUSERCLIENT(String),
/// 252 RPL_LUSEROP
/// "<integer> :operator(s) online"
- RPL_LUSEROP(CS<'a>),
+ RPL_LUSEROP(String),
/// 253 RPL_LUSERUNKNOWN
/// "<integer> :unknown connection(s)"
- RPL_LUSERUNKNOWN(CS<'a>),
+ RPL_LUSERUNKNOWN(String),
/// 254 RPL_LUSERCHANNELS
/// "<integer> :channels formed"
- RPL_LUSERCHANNELS(CS<'a>),
+ RPL_LUSERCHANNELS(String),
/// 255 RPL_LUSERME
/// ":I have <integer> clients and <integer>
@@ -593,19 +591,19 @@ pub enum Reply<'a> {
/// replies are only sent back if a non-zero count
/// is found for them.
///
- RPL_LUSERME(CS<'a>),
+ RPL_LUSERME(String),
/// 256 RPL_ADMINME
/// "<server> :Administrative info"
- RPL_ADMINME(CS<'a>),
+ RPL_ADMINME(String),
/// 257 RPL_ADMINLOC1
/// ":<admin info>"
- RPL_ADMINLOC1(CS<'a>),
+ RPL_ADMINLOC1(String),
/// 258 RPL_ADMINLOC2
/// ":<admin info>"
- RPL_ADMINLOC2(CS<'a>),
+ RPL_ADMINLOC2(String),
/// 259 RPL_ADMINEMAIL
/// ":<admin info>"
@@ -622,7 +620,7 @@ pub enum Reply<'a> {
/// server (an email address here is REQUIRED)
/// in RPL_ADMINEMAIL.
///
- RPL_ADMINEMAIL(CS<'a>),
+ RPL_ADMINEMAIL(String),
/// 263 RPL_TRYAGAIN
/// "<command> :Please wait a while and try again."
@@ -631,7 +629,7 @@ pub enum Reply<'a> {
/// it MUST use the reply RPL_TRYAGAIN to inform the
/// originating client.
///
- RPL_TRYAGAIN(CS<'a>),
+ RPL_TRYAGAIN(String),
/// 401 ERR_NOSUCHNICK
/// "<nickname> :No such nick/channel"
@@ -639,7 +637,7 @@ pub enum Reply<'a> {
/// - Used to indicate the nickname parameter supplied to a
/// command is currently unused.
///
- ERR_NOSUCHNICK(CS<'a>),
+ ERR_NOSUCHNICK(String),
/// 402 ERR_NOSUCHSERVER
/// "<server name> :No such server"
@@ -647,14 +645,14 @@ pub enum Reply<'a> {
/// - Used to indicate the server name given currently
/// does not exist.
///
- ERR_NOSUCHSERVER(CS<'a>),
+ ERR_NOSUCHSERVER(String),
/// 403 ERR_NOSUCHCHANNEL
/// "<channel name> :No such channel"
///
/// - Used to indicate the given channel name is invalid.
///
- ERR_NOSUCHCHANNEL(CS<'a>),
+ ERR_NOSUCHCHANNEL(String),
/// 404 ERR_CANNOTSENDTOCHAN
/// "<channel name> :Cannot send to channel"
@@ -665,7 +663,7 @@ pub enum Reply<'a> {
/// banned and is trying to send a PRIVMSG message to
/// that channel.
///
- ERR_CANNOTSENDTOCHAN(CS<'a>),
+ ERR_CANNOTSENDTOCHAN(String),
/// 405 ERR_TOOMANYCHANNELS
/// "<channel name> :You have joined too many channels"
@@ -674,7 +672,7 @@ pub enum Reply<'a> {
/// number of allowed channels and they try to join
/// another channel.
///
- ERR_TOOMANYCHANNELS(CS<'a>),
+ ERR_TOOMANYCHANNELS(String),
/// 406 ERR_WASNOSUCHNICK
/// "<nickname> :There was no such nickname"
@@ -682,7 +680,7 @@ pub enum Reply<'a> {
/// - Returned by WHOWAS to indicate there is no history
/// information for that nickname.
///
- ERR_WASNOSUCHNICK(CS<'a>),
+ ERR_WASNOSUCHNICK(String),
/// 407 ERR_TOOMANYTARGETS
/// "<target> :<error code> recipients. <abort message>"
@@ -698,7 +696,7 @@ pub enum Reply<'a> {
/// channel using the shortname when there are more than one
/// such channel.
///
- ERR_TOOMANYTARGETS(CS<'a>),
+ ERR_TOOMANYTARGETS(String),
/// 408 ERR_NOSUCHSERVICE
/// "<service name> :No such service"
@@ -706,30 +704,30 @@ pub enum Reply<'a> {
/// - Returned to a client which is attempting to send a SQUERY
/// to a service which does not exist.
///
- ERR_NOSUCHSERVICE(CS<'a>),
+ ERR_NOSUCHSERVICE(String),
/// 409 ERR_NOORIGIN
/// ":No origin specified"
///
/// - PING or PONG message missing the originator parameter.
///
- ERR_NOORIGIN(CS<'a>),
+ ERR_NOORIGIN(String),
/// 411 ERR_NORECIPIENT
/// ":No recipient given (<command>)"
- ERR_NORECIPIENT(CS<'a>),
+ ERR_NORECIPIENT(String),
/// 412 ERR_NOTEXTTOSEND
/// ":No text to send"
- ERR_NOTEXTTOSEND(CS<'a>),
+ ERR_NOTEXTTOSEND(String),
/// 413 ERR_NOTOPLEVEL
/// "<mask> :No toplevel domain specified"
- ERR_NOTOPLEVEL(CS<'a>),
+ ERR_NOTOPLEVEL(String),
/// 414 ERR_WILDTOPLEVEL
/// "<mask> :Wildcard in toplevel domain"
- ERR_WILDTOPLEVEL(CS<'a>),
+ ERR_WILDTOPLEVEL(String),
/// 415 ERR_BADMASK
/// "<mask> :Bad Server/host mask"
@@ -740,7 +738,7 @@ pub enum Reply<'a> {
/// are returned when an invalid use of
/// "PRIVMSG $<server>" or "PRIVMSG #<host>" is attempted.
///
- ERR_BADMASK(CS<'a>),
+ ERR_BADMASK(String),
/// 421 ERR_UNKNOWNCOMMAND
/// "<command> :Unknown command"
@@ -748,14 +746,14 @@ pub enum Reply<'a> {
/// - Returned to a registered client to indicate that the
/// command sent is unknown by the server.
///
- ERR_UNKNOWNCOMMAND(CS<'a>),
+ ERR_UNKNOWNCOMMAND(String),
/// 422 ERR_NOMOTD
/// ":MOTD File is missing"
///
/// - Server's MOTD file could not be opened by the server.
///
- ERR_NOMOTD(CS<'a>),
+ ERR_NOMOTD(String),
/// 423 ERR_NOADMININFO
/// "<server> :No administrative info available"
@@ -764,7 +762,7 @@ pub enum Reply<'a> {
/// when there is an error in finding the appropriate
/// information.
///
- ERR_NOADMININFO(CS<'a>),
+ ERR_NOADMININFO(String),
/// 424 ERR_FILEERROR
/// ":File error doing <file op> on <file>"
@@ -772,7 +770,7 @@ pub enum Reply<'a> {
/// - Generic error message used to report a failed file
/// operation during the processing of a message.
///
- ERR_FILEERROR(CS<'a>),
+ ERR_FILEERROR(String),
/// 431 ERR_NONICKNAMEGIVEN
/// ":No nickname given"
@@ -780,7 +778,7 @@ pub enum Reply<'a> {
/// - Returned when a nickname parameter expected for a
/// command and isn't found.
///
- ERR_NONICKNAMEGIVEN(CS<'a>),
+ ERR_NONICKNAMEGIVEN(String),
/// 432 ERR_ERRONEUSNICKNAME
/// "<nick> :Erroneous nickname"
@@ -789,7 +787,7 @@ pub enum Reply<'a> {
/// characters which do not fall in the defined set. See
/// section 2.3.1 for details on valid nicknames.
///
- ERR_ERRONEUSNICKNAME(CS<'a>),
+ ERR_ERRONEUSNICKNAME(String),
/// 433 ERR_NICKNAMEINUSE
/// "<nick> :Nickname is already in use"
@@ -798,7 +796,7 @@ pub enum Reply<'a> {
/// in an attempt to change to a currently existing
/// nickname.
///
- ERR_NICKNAMEINUSE(CS<'a>),
+ ERR_NICKNAMEINUSE(String),
/// 436 ERR_NICKCOLLISION
/// "<nick> :Nickname collision KILL from <user>@<host>"
@@ -807,7 +805,7 @@ pub enum Reply<'a> {
/// nickname collision (registered of a NICK that
/// already exists by another server).
///
- ERR_NICKCOLLISION(CS<'a>),
+ ERR_NICKCOLLISION(String),
/// 437 ERR_UNAVAILRESOURCE
/// "<nick/channel> :Nick/channel is temporarily unavailable"
@@ -819,7 +817,7 @@ pub enum Reply<'a> {
/// when the desired nickname is blocked by the nick delay
/// mechanism.
///
- ERR_UNAVAILRESOURCE(CS<'a>),
+ ERR_UNAVAILRESOURCE(String),
/// 441 ERR_USERNOTINCHANNEL
/// "<nick> <channel> :They aren't on that channel"
@@ -827,7 +825,7 @@ pub enum Reply<'a> {
/// - Returned by the server to indicate that the target
/// user of the command is not on the given channel.
///
- ERR_USERNOTINCHANNEL(CS<'a>),
+ ERR_USERNOTINCHANNEL(String),
/// 442 ERR_NOTONCHANNEL
/// "<channel> :You're not on that channel"
@@ -836,7 +834,7 @@ pub enum Reply<'a> {
/// perform a channel affecting command for which the
/// client isn't a member.
///
- ERR_NOTONCHANNEL(CS<'a>),
+ ERR_NOTONCHANNEL(String),
/// 443 ERR_USERONCHANNEL
/// "<user> <channel> :is already on channel"
@@ -844,7 +842,7 @@ pub enum Reply<'a> {
/// - Returned when a client tries to invite a user to a
/// channel they are already on.
///
- ERR_USERONCHANNEL(CS<'a>),
+ ERR_USERONCHANNEL(String),
/// 444 ERR_NOLOGIN
/// "<user> :User not logged in"
@@ -853,7 +851,7 @@ pub enum Reply<'a> {
/// user was unable to be performed since they were not
/// logged in.
///
- ERR_NOLOGIN(CS<'a>),
+ ERR_NOLOGIN(String),
/// 445 ERR_SUMMONDISABLED
/// ":SUMMON has been disabled"
@@ -861,7 +859,7 @@ pub enum Reply<'a> {
/// - Returned as a response to the SUMMON command. MUST be
/// returned by any server which doesn't implement it.
///
- ERR_SUMMONDISABLED(CS<'a>),
+ ERR_SUMMONDISABLED(String),
/// 446 ERR_USERSDISABLED
/// ":USERS has been disabled"
@@ -869,7 +867,7 @@ pub enum Reply<'a> {
/// - Returned as a response to the USERS command. MUST be
/// returned by any server which does not implement it.
///
- ERR_USERSDISABLED(CS<'a>),
+ ERR_USERSDISABLED(String),
/// 451 ERR_NOTREGISTERED
/// ":You have not registered"
@@ -878,7 +876,7 @@ pub enum Reply<'a> {
/// MUST be registered before the server will allow it
/// to be parsed in detail.
///
- ERR_NOTREGISTERED(CS<'a>),
+ ERR_NOTREGISTERED(String),
/// 461 ERR_NEEDMOREPARAMS
/// "<command> :Not enough parameters"
@@ -887,7 +885,7 @@ pub enum Reply<'a> {
/// indicate to the client that it didn't supply enough
/// parameters.
///
- ERR_NEEDMOREPARAMS(CS<'a>),
+ ERR_NEEDMOREPARAMS(String),
/// 462 ERR_ALREADYREGISTRED
/// ":Unauthorized command (already registered)"
@@ -896,7 +894,7 @@ pub enum Reply<'a> {
/// change part of the registered details (such as
/// password or user details from second USER message).
///
- ERR_ALREADYREGISTRED(CS<'a>),
+ ERR_ALREADYREGISTRED(String),
/// 463 ERR_NOPERMFORHOST
/// ":Your host isn't among the privileged"
@@ -906,7 +904,7 @@ pub enum Reply<'a> {
/// connections from the host the attempted connection
/// is tried.
///
- ERR_NOPERMFORHOST(CS<'a>),
+ ERR_NOPERMFORHOST(String),
/// 464 ERR_PASSWDMISMATCH
/// ":Password incorrect"
@@ -915,7 +913,7 @@ pub enum Reply<'a> {
/// a connection for which a password was required and
/// was either not given or incorrect.
///
- ERR_PASSWDMISMATCH(CS<'a>),
+ ERR_PASSWDMISMATCH(String),
/// 465 ERR_YOUREBANNEDCREEP
/// ":You are banned from this server"
@@ -924,51 +922,51 @@ pub enum Reply<'a> {
/// yourself with a server which has been setup to
/// explicitly deny connections to you.
///
- ERR_YOUREBANNEDCREEP(CS<'a>),
+ ERR_YOUREBANNEDCREEP(String),
/// 466 ERR_YOUWILLBEBANNED
///
/// - Sent by a server to a user to inform that access to the
/// server will soon be denied.
///
- ERR_YOUWILLBEBANNED(CS<'a>),
+ ERR_YOUWILLBEBANNED(String),
/// 467 ERR_KEYSET
/// "<channel> :Channel key already set"
- ERR_KEYSET(CS<'a>),
+ ERR_KEYSET(String),
/// 471 ERR_CHANNELISFULL
/// "<channel> :Cannot join channel (+l)"
- ERR_CHANNELISFULL(CS<'a>),
+ ERR_CHANNELISFULL(String),
/// 472 ERR_UNKNOWNMODE
/// "<char> :is unknown mode char to me for <channel>"
- ERR_UNKNOWNMODE(CS<'a>),
+ ERR_UNKNOWNMODE(String),
/// 473 ERR_INVITEONLYCHAN
/// "<channel> :Cannot join channel (+i)"
- ERR_INVITEONLYCHAN(CS<'a>),
+ ERR_INVITEONLYCHAN(String),
/// 474 ERR_BANNEDFROMCHAN
/// "<channel> :Cannot join channel (+b)"
- ERR_BANNEDFROMCHAN(CS<'a>),
+ ERR_BANNEDFROMCHAN(String),
/// 475 ERR_BADCHANNELKEY
/// "<channel> :Cannot join channel (+k)"
- ERR_BADCHANNELKEY(CS<'a>),
+ ERR_BADCHANNELKEY(String),
/// 476 ERR_BADCHANMASK
/// "<channel> :Bad Channel Mask"
- ERR_BADCHANMASK(CS<'a>),
+ ERR_BADCHANMASK(String),
/// 477 ERR_NOCHANMODES
/// "<channel> :Channel doesn't support modes"
- ERR_NOCHANMODES(CS<'a>),
+ ERR_NOCHANMODES(String),
/// 478 ERR_BANLISTFULL
/// "<channel> <char> :Channel list is full"
///
- ERR_BANLISTFULL(CS<'a>),
+ ERR_BANLISTFULL(String),
/// 481 ERR_NOPRIVILEGES
/// ":Permission Denied- You're not an IRC operator"
@@ -977,7 +975,7 @@ pub enum Reply<'a> {
/// MUST return this error to indicate the attempt was
/// unsuccessful.
///
- ERR_NOPRIVILEGES(CS<'a>),
+ ERR_NOPRIVILEGES(String),
/// 482 ERR_CHANOPRIVSNEEDED
/// "<channel> :You're not channel operator"
@@ -987,7 +985,7 @@ pub enum Reply<'a> {
/// making the attempt is not a chanop on the specified
/// channel.
///
- ERR_CHANOPRIVSNEEDED(CS<'a>),
+ ERR_CHANOPRIVSNEEDED(String),
/// 483 ERR_CANTKILLSERVER
/// ":You can't kill a server!"
@@ -996,7 +994,7 @@ pub enum Reply<'a> {
/// are to be refused and this error returned directly
/// to the client.
///
- ERR_CANTKILLSERVER(CS<'a>),
+ ERR_CANTKILLSERVER(String),
/// 484 ERR_RESTRICTED
/// ":Your connection is restricted!"
@@ -1004,7 +1002,7 @@ pub enum Reply<'a> {
/// - Sent by the server to a user upon connection to indicate
/// the restricted nature of the connection (user mode "+r").
///
- ERR_RESTRICTED(CS<'a>),
+ ERR_RESTRICTED(String),
/// 485 ERR_UNIQOPPRIVSNEEDED
/// ":You're not the original channel operator"
@@ -1013,7 +1011,7 @@ pub enum Reply<'a> {
/// return this error if the client making the attempt is not
/// a chanop on the specified channel.
///
- ERR_UNIQOPPRIVSNEEDED(CS<'a>),
+ ERR_UNIQOPPRIVSNEEDED(String),
/// 491 ERR_NOOPERHOST
/// ":No O-lines for your host"
@@ -1023,7 +1021,7 @@ pub enum Reply<'a> {
/// client's host as an operator, this error MUST be
/// returned.
///
- ERR_NOOPERHOST(CS<'a>),
+ ERR_NOOPERHOST(String),
/// 501 ERR_UMODEUNKNOWNFLAG
/// ":Unknown MODE flag"
@@ -1032,7 +1030,7 @@ pub enum Reply<'a> {
/// message was sent with a nickname parameter and that
/// the a mode flag sent was not recognized.
///
- ERR_UMODEUNKNOWNFLAG(CS<'a>),
+ ERR_UMODEUNKNOWNFLAG(String),
/// 502 ERR_USERSDONTMATCH
/// ":Cannot change mode for other users"
@@ -1040,12 +1038,12 @@ pub enum Reply<'a> {
/// - Error sent to any user trying to view or change the
/// user mode for a user other than themselves.
///
- ERR_USERSDONTMATCH(CS<'a>),
+ ERR_USERSDONTMATCH(String),
}
-impl<'a> Reply<'a> {
- pub fn from_message(msg: &'a Message) -> Option<Reply<'a>> {
+impl<'a> Reply {
+ pub fn from_message(msg: &'a Message) -> Option<Reply> {
use self::Reply::*;
match msg.command() {
"001" => msg.elements().last().map(|&e| RPL_WELCOME(Borrowed(e))),