From 6d953b0844418e79b5cd287d76682ca7453839ab Mon Sep 17 00:00:00 2001 From: Till Hoeppner Date: Tue, 21 Apr 2015 08:43:40 +0200 Subject: Manually fixed doc format --- src/command.rs | 1454 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 726 insertions(+), 728 deletions(-) diff --git a/src/command.rs b/src/command.rs index 1a2324a..f171f40 100644 --- a/src/command.rs +++ b/src/command.rs @@ -3,43 +3,43 @@ use message::{ Message, MsgType }; #[derive(Debug, Hash, PartialEq, Eq)] +#[doc(disables)] pub enum Command<'a> { /// 3.1.1 Password message /// - /// Command: PASS - /// Parameters: + /// Command: PASS + /// Parameters: /// - /// The PASS command is used to set a 'connection password'. The - /// optional password can and MUST be set before any attempt to register - /// the connection is made. Currently this requires that user send a - /// PASS command before sending the NICK/USER combination. + /// The PASS command is used to set a 'connection password'. The + /// optional password can and MUST be set before any attempt to register + /// the connection is made. Currently this requires that user send a + /// PASS command before sending the NICK/USER combination. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED + /// ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED /// - /// Example: + /// Example: /// - /// PASS secretpasswordhere + /// PASS secretpasswordhere /// PASS(&'a str), /// 3.1.2 Nick message /// + /// Command: NICK + /// Parameters: /// - /// Command: NICK - /// Parameters: + /// NICK command is used to give user a nickname or change the existing + /// one. /// - /// NICK command is used to give user a nickname or change the existing - /// one. + /// Numeric Replies: /// - /// Numeric Replies: + /// ERR_NONICKNAMEGIVEN ERR_ERRONEUSNICKNAME + /// ERR_NICKNAMEINUSE ERR_NICKCOLLISION + /// ERR_UNAVAILRESOURCE ERR_RESTRICTED /// - /// ERR_NONICKNAMEGIVEN ERR_ERRONEUSNICKNAME - /// ERR_NICKNAMEINUSE ERR_NICKCOLLISION - /// ERR_UNAVAILRESOURCE ERR_RESTRICTED - /// - /// Examples: + /// Examples: /// /// NICK Wiz ; Introducing new nick "Wiz" if session is /// still unregistered, or user changing his @@ -53,26 +53,26 @@ pub enum Command<'a> { /// 3.1.3 User message /// - /// Command: USER - /// Parameters: + /// Command: USER + /// Parameters: /// - /// The USER command is used at the beginning of connection to specify - /// the username, hostname and realname of a new user. + /// The USER command is used at the beginning of connection to specify + /// the username, hostname and realname of a new user. /// - /// The parameter should be a numeric, and can be used to - /// automatically set user modes when registering with the server. This - /// parameter is a bitmask, with only 2 bits having any signification: if - /// the bit 2 is set, the user mode 'w' will be set and if the bit 3 is - /// set, the user mode 'i' will be set. (See Section 3.1.5 "User - /// Modes"). + /// The parameter should be a numeric, and can be used to + /// automatically set user modes when registering with the server. This + /// parameter is a bitmask, with only 2 bits having any signification: if + /// the bit 2 is set, the user mode 'w' will be set and if the bit 3 is + /// set, the user mode 'i' will be set. (See Section 3.1.5 "User + /// Modes"). /// - /// The may contain space characters. + /// The may contain space characters. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED + /// ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED /// - /// Example: + /// Example: /// /// USER guest 0 * :Ronnie Reagan ; User registering themselves with a /// username of "guest" and real name @@ -87,20 +87,20 @@ pub enum Command<'a> { /// 3.1.4 Oper message /// - /// Command: OPER - /// Parameters: + /// Command: OPER + /// Parameters: /// - /// A normal user uses the OPER command to obtain operator privileges. - /// The combination of and are REQUIRED to gain - /// Operator privileges. Upon success, the user will receive a MODE - /// message (see section 3.1.5) indicating the new user modes. + /// A normal user uses the OPER command to obtain operator privileges. + /// The combination of and are REQUIRED to gain + /// Operator privileges. Upon success, the user will receive a MODE + /// message (see section 3.1.5) indicating the new user modes. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS RPL_YOUREOPER - /// ERR_NOOPERHOST ERR_PASSWDMISMATCH + /// ERR_NEEDMOREPARAMS RPL_YOUREOPER + /// ERR_NOOPERHOST ERR_PASSWDMISMATCH /// - /// Example: + /// Example: /// /// OPER foo bar ; Attempt to register as an operator /// using a username of "foo" and "bar" @@ -110,56 +110,56 @@ pub enum Command<'a> { /// 3.1.5 User mode message /// - /// Command: UMODE - /// Parameters: - /// *( ( "+" / "-" ) *( "i" / "w" / "o" / "O" / "r" ) ) + /// Command: MODE + /// Parameters: + /// *( ( "+" / "-" ) *( "i" / "w" / "o" / "O" / "r" ) ) /// - /// The user MODE's are typically changes which affect either how the - /// client is seen by others or what 'extra' messages the client is sent. + /// The user MODE's are typically changes which affect either how the + /// client is seen by others or what 'extra' messages the client is sent. /// - /// A user MODE command MUST only be accepted if both the sender of the - /// message and the nickname given as a parameter are both the same. If - /// no other parameter is given, then the server will return the current - /// settings for the nick. + /// A user MODE command MUST only be accepted if both the sender of the + /// message and the nickname given as a parameter are both the same. If + /// no other parameter is given, then the server will return the current + /// settings for the nick. /// - /// The available modes are as follows: + /// The available modes are as follows: /// - /// a - user is flagged as away; - /// i - marks a users as invisible; - /// w - user receives wallops; - /// r - restricted user connection; - /// o - operator flag; - /// O - local operator flag; - /// s - marks a user for receipt of server notices. + /// a - user is flagged as away; + /// i - marks a users as invisible; + /// w - user receives wallops; + /// r - restricted user connection; + /// o - operator flag; + /// O - local operator flag; + /// s - marks a user for receipt of server notices. /// - /// Additional modes may be available later on. + /// Additional modes may be available later on. /// - /// The flag 'a' SHALL NOT be toggled by the user using the MODE command, - /// instead use of the AWAY command is REQUIRED. + /// The flag 'a' SHALL NOT be toggled by the user using the MODE command, + /// instead use of the AWAY command is REQUIRED. /// - /// If a user attempts to make themselves an operator using the "+o" or - /// "+O" flag, the attempt SHOULD be ignored as users could bypass the - /// authentication mechanisms of the OPER command. There is no - /// restriction, however, on anyone `deopping' themselves (using "-o" or - /// "-O"). + /// If a user attempts to make themselves an operator using the "+o" or + /// "+O" flag, the attempt SHOULD be ignored as users could bypass the + /// authentication mechanisms of the OPER command. There is no + /// restriction, however, on anyone `deopping' themselves (using "-o" or + /// "-O"). /// - /// On the other hand, if a user attempts to make themselves unrestricted - /// using the "-r" flag, the attempt SHOULD be ignored. There is no - /// restriction, however, on anyone `deopping' themselves (using "+r"). - /// This flag is typically set by the server upon connection for - /// administrative reasons. While the restrictions imposed are left up - /// to the implementation, it is typical that a restricted user not be - /// allowed to change nicknames, nor make use of the channel operator - /// status on channels. + /// On the other hand, if a user attempts to make themselves unrestricted + /// using the "-r" flag, the attempt SHOULD be ignored. There is no + /// restriction, however, on anyone `deopping' themselves (using "+r"). + /// This flag is typically set by the server upon connection for + /// administrative reasons. While the restrictions imposed are left up + /// to the implementation, it is typical that a restricted user not be + /// allowed to change nicknames, nor make use of the channel operator + /// status on channels. /// - /// The flag 's' is obsolete but MAY still be used. + /// The flag 's' is obsolete but MAY still be used. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS ERR_USERSDONTMATCH - /// ERR_UMODEUNKNOWNFLAG RPL_UMODEIS + /// ERR_NEEDMOREPARAMS ERR_USERSDONTMATCH + /// ERR_UMODEUNKNOWNFLAG RPL_UMODEIS /// - /// Examples: + /// Examples: /// /// MODE WiZ -w ; Command by WiZ to turn off /// reception of WALLOPS messages. @@ -174,31 +174,31 @@ pub enum Command<'a> { /// 3.1.6 Service message /// - /// Command: SERVICE - /// Parameters: - /// + /// Command: SERVICE + /// Parameters: + /// /// - /// The SERVICE command to register a new service. Command parameters - /// specify the service nickname, distribution, type and info of a new - /// service. + /// The SERVICE command to register a new service. Command parameters + /// specify the service nickname, distribution, type and info of a new + /// service. /// - /// The parameter is used to specify the visibility of a - /// service. The service may only be known to servers which have a name - /// matching the distribution. For a matching server to have knowledge - /// of the service, the network path between that server and the server - /// on which the service is connected MUST be composed of servers which - /// names all match the mask. + /// The parameter is used to specify the visibility of a + /// service. The service may only be known to servers which have a name + /// matching the distribution. For a matching server to have knowledge + /// of the service, the network path between that server and the server + /// on which the service is connected MUST be composed of servers which + /// names all match the mask. /// - /// The parameter is currently reserved for future usage. + /// The parameter is currently reserved for future usage. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_ALREADYREGISTRED ERR_NEEDMOREPARAMS - /// ERR_ERRONEUSNICKNAME - /// RPL_YOURESERVICE RPL_YOURHOST - /// RPL_MYINFO + /// ERR_ALREADYREGISTRED ERR_NEEDMOREPARAMS + /// ERR_ERRONEUSNICKNAME + /// RPL_YOURESERVICE RPL_YOURHOST + /// RPL_MYINFO /// - /// Example: + /// Example: /// /// SERVICE dict * *.fr 0 0 :French Dictionary ; Service registering /// itself with a name of "dict". This @@ -209,17 +209,17 @@ pub enum Command<'a> { /// 3.1.7 Quit /// - /// Command: QUIT - /// Parameters: [ ] + /// Command: QUIT + /// Parameters: [ ] /// - /// A client session is terminated with a quit message. The server - /// acknowledges this by sending an ERROR message to the client. + /// A client session is terminated with a quit message. The server + /// acknowledges this by sending an ERROR message to the client. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// None. + /// None. /// - /// Example: + /// Example: /// /// QUIT :Gone to have lunch ; Preferred message format. /// @@ -230,27 +230,27 @@ pub enum Command<'a> { /// 3.1.8 Squit /// - /// Command: SQUIT - /// Parameters: + /// Command: SQUIT + /// Parameters: /// - /// The SQUIT command is available only to operators. It is used to - /// disconnect server links. Also servers can generate SQUIT messages on - /// error conditions. A SQUIT message may also target a remote server - /// connection. In this case, the SQUIT message will simply be sent to - /// the remote server without affecting the servers in between the - /// operator and the remote server. + /// The SQUIT command is available only to operators. It is used to + /// disconnect server links. Also servers can generate SQUIT messages on + /// error conditions. A SQUIT message may also target a remote server + /// connection. In this case, the SQUIT message will simply be sent to + /// the remote server without affecting the servers in between the + /// operator and the remote server. /// - /// The SHOULD be supplied by all operators who execute a SQUIT - /// for a remote server. The server ordered to disconnect its peer - /// generates a WALLOPS message with included, so that other - /// users may be aware of the reason of this action. + /// The SHOULD be supplied by all operators who execute a SQUIT + /// for a remote server. The server ordered to disconnect its peer + /// generates a WALLOPS message with included, so that other + /// users may be aware of the reason of this action. /// - /// Numeric replies: + /// Numeric replies: /// - /// ERR_NOPRIVILEGES ERR_NOSUCHSERVER - /// ERR_NEEDMOREPARAMS + /// ERR_NOPRIVILEGES ERR_NOSUCHSERVER + /// ERR_NEEDMOREPARAMS /// - /// Examples: + /// Examples: /// /// SQUIT tolsun.oulu.fi :Bad Link ? ; Command to uplink of the server /// tolson.oulu.fi to terminate its @@ -265,42 +265,42 @@ pub enum Command<'a> { /// 3.2.1 Join message /// - /// Command: JOIN - /// Parameters: ( *( "," ) [ *( "," ) ] ) - /// / "0" + /// Command: JOIN + /// Parameters: ( *( "," ) [ *( "," ) ] ) + /// / "0" /// - /// The JOIN command is used by a user to request to start listening to - /// the specific channel. Servers MUST be able to parse arguments in the - /// form of a list of target, but SHOULD NOT use lists when sending JOIN - /// messages to clients. + /// The JOIN command is used by a user to request to start listening to + /// the specific channel. Servers MUST be able to parse arguments in the + /// form of a list of target, but SHOULD NOT use lists when sending JOIN + /// messages to clients. /// - /// Once a user has joined a channel, he receives information about - /// all commands his server receives affecting the channel. This - /// includes JOIN, MODE, KICK, PART, QUIT and of course PRIVMSG/NOTICE. - /// This allows channel members to keep track of the other channel - /// members, as well as channel modes. + /// Once a user has joined a channel, he receives information about + /// all commands his server receives affecting the channel. This + /// includes JOIN, MODE, KICK, PART, QUIT and of course PRIVMSG/NOTICE. + /// This allows channel members to keep track of the other channel + /// members, as well as channel modes. /// - /// If a JOIN is successful, the user receives a JOIN message as - /// confirmation and is then sent the channel's topic (using RPL_TOPIC) and - /// the list of users who are on the channel (using RPL_NAMREPLY), which - /// MUST include the user joining. + /// If a JOIN is successful, the user receives a JOIN message as + /// confirmation and is then sent the channel's topic (using RPL_TOPIC) and + /// the list of users who are on the channel (using RPL_NAMREPLY), which + /// MUST include the user joining. /// - /// Note that this message accepts a special argument ("0"), which is - /// a special request to leave all channels the user is currently a member - /// of. The server will process this message as if the user had sent - /// a PART command (See Section 3.2.2) for each channel he is a member - /// of. + /// Note that this message accepts a special argument ("0"), which is + /// a special request to leave all channels the user is currently a member + /// of. The server will process this message as if the user had sent + /// a PART command (See Section 3.2.2) for each channel he is a member + /// of. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS ERR_BANNEDFROMCHAN - /// ERR_INVITEONLYCHAN ERR_BADCHANNELKEY - /// ERR_CHANNELISFULL ERR_BADCHANMASK - /// ERR_NOSUCHCHANNEL ERR_TOOMANYCHANNELS - /// ERR_TOOMANYTARGETS ERR_UNAVAILRESOURCE - /// RPL_TOPIC + /// ERR_NEEDMOREPARAMS ERR_BANNEDFROMCHAN + /// ERR_INVITEONLYCHAN ERR_BADCHANNELKEY + /// ERR_CHANNELISFULL ERR_BADCHANMASK + /// ERR_NOSUCHCHANNEL ERR_TOOMANYCHANNELS + /// ERR_TOOMANYTARGETS ERR_UNAVAILRESOURCE + /// RPL_TOPIC /// - /// Examples: + /// Examples: /// /// JOIN #foobar ; Command to join channel #foobar. /// @@ -327,25 +327,25 @@ pub enum Command<'a> { /// 3.2.2 Part message /// - /// Command: PART - /// Parameters: *( "," ) [ ] + /// Command: PART + /// Parameters: *( "," ) [ ] /// - /// The PART command causes the user sending the message to be removed - /// from the list of active members for all given channels listed in the - /// parameter string. If a "Part Message" is given, this will be sent - /// instead of the default message, the nickname. This request is always - /// granted by the server. + /// The PART command causes the user sending the message to be removed + /// from the list of active members for all given channels listed in the + /// parameter string. If a "Part Message" is given, this will be sent + /// instead of the default message, the nickname. This request is always + /// granted by the server. /// - /// Servers MUST be able to parse arguments in the form of a list of - /// target, but SHOULD NOT use lists when sending PART messages to - /// clients. + /// Servers MUST be able to parse arguments in the form of a list of + /// target, but SHOULD NOT use lists when sending PART messages to + /// clients. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL - /// ERR_NOTONCHANNEL + /// ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL + /// ERR_NOTONCHANNEL /// - /// Examples: + /// Examples: /// /// PART #twilight_zone ; Command to leave channel /// "#twilight_zone" @@ -362,31 +362,31 @@ pub enum Command<'a> { /// 3.2.3 Channel mode message /// - /// Command: MODE - /// Parameters: *( ( "-" / "+" ) * * ) + /// Command: MODE + /// Parameters: *( ( "-" / "+" ) * * ) /// - /// The MODE command is provided so that users may query and change the - /// characteristics of a channel. For more details on available modes - /// and their uses, see "Internet Relay Chat: Channel Management" [IRC- - /// CHAN]. Note that there is a maximum limit of three (3) changes per - /// command for modes that take a parameter. + /// The MODE command is provided so that users may query and change the + /// characteristics of a channel. For more details on available modes + /// and their uses, see "Internet Relay Chat: Channel Management" [IRC- + /// CHAN]. Note that there is a maximum limit of three (3) changes per + /// command for modes that take a parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS ERR_KEYSET - /// ERR_NOCHANMODES ERR_CHANOPRIVSNEEDED - /// ERR_USERNOTINCHANNEL ERR_UNKNOWNMODE - /// RPL_CHANNELMODEIS - /// RPL_BANLIST RPL_ENDOFBANLIST - /// RPL_EXCEPTLIST RPL_ENDOFEXCEPTLIST - /// RPL_INVITELIST RPL_ENDOFINVITELIST - /// RPL_UNIQOPIS + /// ERR_NEEDMOREPARAMS ERR_KEYSET + /// ERR_NOCHANMODES ERR_CHANOPRIVSNEEDED + /// ERR_USERNOTINCHANNEL ERR_UNKNOWNMODE + /// RPL_CHANNELMODEIS + /// RPL_BANLIST RPL_ENDOFBANLIST + /// RPL_EXCEPTLIST RPL_ENDOFEXCEPTLIST + /// RPL_INVITELIST RPL_ENDOFINVITELIST + /// RPL_UNIQOPIS /// - /// The following examples are given to help understanding the syntax of - /// the MODE command, but refer to modes defined in "Internet Relay Chat: - /// Channel Management" [IRC-CHAN]. + /// The following examples are given to help understanding the syntax of + /// the MODE command, but refer to modes defined in "Internet Relay Chat: + /// Channel Management" [IRC-CHAN]. /// - /// Examples: + /// Examples: /// /// MODE #Finnish +imI *!*@*.fi ; Command to make #Finnish channel /// moderated and 'invite-only' with user @@ -446,23 +446,23 @@ pub enum Command<'a> { /// 3.2.4 Topic message /// - /// Command: TOPIC - /// Parameters: [ ] + /// Command: TOPIC + /// Parameters: [ ] /// - /// The TOPIC command is used to change or view the topic of a channel. - /// The topic for channel is returned if there is no - /// given. If the parameter is present, the topic for that - /// channel will be changed, if this action is allowed for the user - /// requesting it. If the parameter is an empty string, the - /// topic for that channel will be removed. + /// The TOPIC command is used to change or view the topic of a channel. + /// The topic for channel is returned if there is no + /// given. If the parameter is present, the topic for that + /// channel will be changed, if this action is allowed for the user + /// requesting it. If the parameter is an empty string, the + /// topic for that channel will be removed. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS ERR_NOTONCHANNEL - /// RPL_NOTOPIC RPL_TOPIC - /// ERR_CHANOPRIVSNEEDED ERR_NOCHANMODES + /// ERR_NEEDMOREPARAMS ERR_NOTONCHANNEL + /// RPL_NOTOPIC RPL_TOPIC + /// ERR_CHANOPRIVSNEEDED ERR_NOCHANMODES /// - /// Examples: + /// Examples: /// /// :WiZ!jto@tolsun.oulu.fi TOPIC #test :New topic ; User Wiz setting the /// topic. @@ -480,31 +480,31 @@ pub enum Command<'a> { /// 3.2.5 Names message /// - /// Command: NAMES - /// Parameters: [ *( "," ) [ ] ] + /// Command: NAMES + /// Parameters: [ *( "," ) [ ] ] /// - /// By using the NAMES command, a user can list all nicknames that are - /// visible to him. For more details on what is visible and what is not, - /// see "Internet Relay Chat: Channel Management" [IRC-CHAN]. The - /// parameter specifies which channel(s) to return information - /// about. There is no error reply for bad channel names. + /// By using the NAMES command, a user can list all nicknames that are + /// visible to him. For more details on what is visible and what is not, + /// see "Internet Relay Chat: Channel Management" [IRC-CHAN]. The + /// parameter specifies which channel(s) to return information + /// about. There is no error reply for bad channel names. /// - /// If no parameter is given, a list of all channels and their - /// occupants is returned. At the end of this list, a list of users who - /// are visible but either not on any channel or not on a visible channel - /// are listed as being on `channel' "*". + /// If no parameter is given, a list of all channels and their + /// occupants is returned. At the end of this list, a list of users who + /// are visible but either not on any channel or not on a visible channel + /// are listed as being on `channel' "*". /// - /// If the parameter is specified, the request is forwarded to - /// that server which will generate the reply. + /// If the parameter is specified, the request is forwarded to + /// that server which will generate the reply. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numerics: + /// Numerics: /// - /// ERR_TOOMANYMATCHES ERR_NOSUCHSERVER - /// RPL_NAMREPLY RPL_ENDOFNAMES + /// ERR_TOOMANYMATCHES ERR_NOSUCHSERVER + /// RPL_NAMREPLY RPL_ENDOFNAMES /// - /// Examples: + /// Examples: /// /// NAMES #twilight_zone,#42 ; Command to list visible users on /// #twilight_zone and #42 @@ -516,24 +516,24 @@ pub enum Command<'a> { /// 3.2.6 List message /// - /// Command: LIST - /// Parameters: [ *( "," ) [ ] ] + /// Command: LIST + /// Parameters: [ *( "," ) [ ] ] /// - /// The list command is used to list channels and their topics. If the - /// parameter is used, only the status of that channel is - /// displayed. + /// The list command is used to list channels and their topics. If the + /// parameter is used, only the status of that channel is + /// displayed. /// - /// If the parameter is specified, the request is forwarded to - /// that server which will generate the reply. + /// If the parameter is specified, the request is forwarded to + /// that server which will generate the reply. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_TOOMANYMATCHES ERR_NOSUCHSERVER - /// RPL_LIST RPL_LISTEND + /// ERR_TOOMANYMATCHES ERR_NOSUCHSERVER + /// RPL_LIST RPL_LISTEND /// - /// Examples: + /// Examples: /// /// LIST ; Command to list all channels. /// @@ -544,33 +544,32 @@ pub enum Command<'a> { /// 3.2.7 Invite message /// - /// Command: INVITE - /// Parameters: + /// Command: INVITE + /// Parameters: /// - /// The INVITE command is used to invite a user to a channel. The - /// parameter is the nickname of the person to be invited to - /// the target channel . There is no requirement that the - /// channel the target user is being invited to must exist or be a valid - /// channel. However, if the channel exists, only members of the channel - /// are allowed to invite other users. When the channel has invite-only - /// flag set, only channel operators may issue INVITE command. + /// The INVITE command is used to invite a user to a channel. The + /// parameter is the nickname of the person to be invited to + /// the target channel . There is no requirement that the + /// channel the target user is being invited to must exist or be a valid + /// channel. However, if the channel exists, only members of the channel + /// are allowed to invite other users. When the channel has invite-only + /// flag set, only channel operators may issue INVITE command. /// - /// Only the user inviting and the user being invited will receive - /// notification of the invitation. Other channel members are not - /// notified. (This is unlike the MODE changes, and is occasionally the - /// source of trouble for users.) + /// Only the user inviting and the user being invited will receive + /// notification of the invitation. Other channel members are not + /// notified. (This is unlike the MODE changes, and is occasionally the + /// source of trouble for users.) /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS ERR_NOSUCHNICK - /// ERR_NOTONCHANNEL ERR_USERONCHANNEL - /// ERR_CHANOPRIVSNEEDED - /// RPL_INVITING RPL_AWAY + /// ERR_NEEDMOREPARAMS ERR_NOSUCHNICK + /// ERR_NOTONCHANNEL ERR_USERONCHANNEL + /// ERR_CHANOPRIVSNEEDED + /// RPL_INVITING RPL_AWAY /// - /// Examples: + /// Examples: /// /// :Angel!wings@irc.org INVITE Wiz #Dust - /// /// ; Message to WiZ when he has been /// invited by user Angel to channel /// #Dust @@ -582,29 +581,29 @@ pub enum Command<'a> { /// 3.2.8 Kick command /// - /// Command: KICK - /// Parameters: *( "," ) *( "," ) - /// [] + /// Command: KICK + /// Parameters: *( "," ) *( "," ) + /// [] /// - /// The KICK command can be used to request the forced removal of a user - /// from a channel. It causes the to PART from the by - /// force. For the message to be syntactically correct, there MUST be - /// either one channel parameter and multiple user parameter, or as many - /// channel parameters as there are user parameters. If a "comment" is - /// given, this will be sent instead of the default message, the nickname - /// of the user issuing the KICK. + /// The KICK command can be used to request the forced removal of a user + /// from a channel. It causes the to PART from the by + /// force. For the message to be syntactically correct, there MUST be + /// either one channel parameter and multiple user parameter, or as many + /// channel parameters as there are user parameters. If a "comment" is + /// given, this will be sent instead of the default message, the nickname + /// of the user issuing the KICK. /// - /// The server MUST NOT send KICK messages with multiple channels or - /// users to clients. This is necessarily to maintain backward - /// compatibility with old client software. + /// The server MUST NOT send KICK messages with multiple channels or + /// users to clients. This is necessarily to maintain backward + /// compatibility with old client software. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL - /// ERR_BADCHANMASK ERR_CHANOPRIVSNEEDED - /// ERR_USERNOTINCHANNEL ERR_NOTONCHANNEL + /// ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL + /// ERR_BADCHANMASK ERR_CHANOPRIVSNEEDED + /// ERR_USERNOTINCHANNEL ERR_NOTONCHANNEL /// - /// Examples: + /// Examples: /// /// KICK &Melbourne Matthew ; Command to kick Matthew from /// &Melbourne @@ -622,31 +621,31 @@ pub enum Command<'a> { /// 3.3.1 Private messages /// - /// Command: PRIVMSG - /// Parameters: + /// Command: PRIVMSG + /// Parameters: /// - /// PRIVMSG is used to send private messages between users, as well as to - /// send messages to channels. is usually the nickname of - /// the recipient of the message, or a channel name. + /// PRIVMSG is used to send private messages between users, as well as to + /// send messages to channels. is usually the nickname of + /// the recipient of the message, or a channel name. /// - /// The parameter may also be a host mask (#) or server - /// mask ($). In both cases the server will only send the PRIVMSG - /// to those who have a server or host matching the mask. The mask MUST - /// have at least 1 (one) "." in it and no wildcards following the last - /// ".". This requirement exists to prevent people sending messages to - /// "#*" or "$*", which would broadcast to all users. Wildcards are the - /// '*' and '?' characters. This extension to the PRIVMSG command is - /// only available to operators. + /// The parameter may also be a host mask (#) or server + /// mask ($). In both cases the server will only send the PRIVMSG + /// to those who have a server or host matching the mask. The mask MUST + /// have at least 1 (one) "." in it and no wildcards following the last + /// ".". This requirement exists to prevent people sending messages to + /// "#*" or "$*", which would broadcast to all users. Wildcards are the + /// '*' and '?' characters. This extension to the PRIVMSG command is + /// only available to operators. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NORECIPIENT ERR_NOTEXTTOSEND - /// ERR_CANNOTSENDTOCHAN ERR_NOTOPLEVEL - /// ERR_WILDTOPLEVEL ERR_TOOMANYTARGETS - /// ERR_NOSUCHNICK - /// RPL_AWAY + /// ERR_NORECIPIENT ERR_NOTEXTTOSEND + /// ERR_CANNOTSENDTOCHAN ERR_NOTOPLEVEL + /// ERR_WILDTOPLEVEL ERR_TOOMANYTARGETS + /// ERR_NOSUCHNICK + /// RPL_AWAY /// - /// Examples: + /// Examples: /// /// :Angel!wings@irc.org PRIVMSG Wiz :Are you receiving this message ? /// ; Message from Angel to Wiz. @@ -690,80 +689,80 @@ pub enum Command<'a> { /// 3.3.2 Notice /// - /// Command: NOTICE - /// Parameters: + /// Command: NOTICE + /// Parameters: /// - /// The NOTICE command is used similarly to PRIVMSG. The difference - /// between NOTICE and PRIVMSG is that automatic replies MUST NEVER be - /// sent in response to a NOTICE message. This rule applies to servers - /// too - they MUST NOT send any error reply back to the client on - /// receipt of a notice. The object of this rule is to avoid loops - /// between clients automatically sending something in response to - /// something it received. + /// The NOTICE command is used similarly to PRIVMSG. The difference + /// between NOTICE and PRIVMSG is that automatic replies MUST NEVER be + /// sent in response to a NOTICE message. This rule applies to servers + /// too - they MUST NOT send any error reply back to the client on + /// receipt of a notice. The object of this rule is to avoid loops + /// between clients automatically sending something in response to + /// something it received. /// - /// This command is available to services as well as users. + /// This command is available to services as well as users. /// - /// This is typically used by services, and automatons (clients with - /// either an AI or other interactive program controlling their actions). + /// This is typically used by services, and automatons (clients with + /// either an AI or other interactive program controlling their actions). /// - /// See PRIVMSG for more details on replies and examples. + /// See PRIVMSG for more details on replies and examples. /// NOTICE(&'a str, &'a str), /// 3.4.1 Motd message /// - /// Command: MOTD - /// Parameters: [ ] + /// Command: MOTD + /// Parameters: [ ] /// - /// The MOTD command is used to get the "Message Of The Day" of the given - /// server, or current server if is omitted. + /// The MOTD command is used to get the "Message Of The Day" of the given + /// server, or current server if is omitted. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: - /// RPL_MOTDSTART RPL_MOTD - /// RPL_ENDOFMOTD ERR_NOMOTD + /// Numeric Replies: + /// RPL_MOTDSTART RPL_MOTD + /// RPL_ENDOFMOTD ERR_NOMOTD /// MOTD(Option<&'a str>), /// 3.4.2 Lusers message /// - /// Command: LUSERS - /// Parameters: [ [ ] ] + /// Command: LUSERS + /// Parameters: [ [ ] ] /// - /// The LUSERS command is used to get statistics about the size of the - /// IRC network. If no parameter is given, the reply will be about the - /// whole net. If a is specified, then the reply will only - /// concern the part of the network formed by the servers matching the - /// mask. Finally, if the parameter is specified, the request - /// is forwarded to that server which will generate the reply. + /// The LUSERS command is used to get statistics about the size of the + /// IRC network. If no parameter is given, the reply will be about the + /// whole net. If a is specified, then the reply will only + /// concern the part of the network formed by the servers matching the + /// mask. Finally, if the parameter is specified, the request + /// is forwarded to that server which will generate the reply. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// RPL_LUSERCLIENT RPL_LUSEROP - /// RPL_LUSERUNKOWN RPL_LUSERCHANNELS - /// RPL_LUSERME ERR_NOSUCHSERVER + /// RPL_LUSERCLIENT RPL_LUSEROP + /// RPL_LUSERUNKOWN RPL_LUSERCHANNELS + /// RPL_LUSERME ERR_NOSUCHSERVER /// LUSERS(Option<(&'a str, Option<&'a str>)>), /// 3.4.3 Version message /// - /// Command: VERSION - /// Parameters: [ ] + /// Command: VERSION + /// Parameters: [ ] /// - /// The VERSION command is used to query the version of the server - /// program. An optional parameter is used to query the version - /// of the server program which a client is not directly connected to. + /// The VERSION command is used to query the version of the server + /// program. An optional parameter is used to query the version + /// of the server program which a client is not directly connected to. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER RPL_VERSION + /// ERR_NOSUCHSERVER RPL_VERSION /// - /// Examples: + /// Examples: /// /// VERSION tolsun.oulu.fi ; Command to check the version of /// server "tolsun.oulu.fi". @@ -772,71 +771,71 @@ pub enum Command<'a> { /// 3.4.4 Stats message /// - /// Command: STATS - /// Parameters: [ [ ] ] + /// Command: STATS + /// Parameters: [ [ ] ] /// - /// The stats command is used to query statistics of certain server. If - /// parameter is omitted, only the end of stats reply is sent - /// back. + /// The stats command is used to query statistics of certain server. If + /// parameter is omitted, only the end of stats reply is sent + /// back. /// - /// A query may be given for any single letter which is only checked by - /// the destination server and is otherwise passed on by intermediate - /// servers, ignored and unaltered. + /// A query may be given for any single letter which is only checked by + /// the destination server and is otherwise passed on by intermediate + /// servers, ignored and unaltered. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Except for the ones below, the list of valid queries is - /// implementation dependent. The standard queries below SHOULD be - /// supported by the server: + /// Except for the ones below, the list of valid queries is + /// implementation dependent. The standard queries below SHOULD be + /// supported by the server: /// - /// l - returns a list of the server's connections, showing how - /// long each connection has been established and the - /// traffic over that connection in Kbytes and messages for - /// each direction; - /// m - returns the usage count for each of commands supported - /// by the server; commands for which the usage count is - /// zero MAY be omitted; - /// o - returns a list of configured privileged users, - /// operators; - /// u - returns a string showing how long the server has been - /// up. + /// l - returns a list of the server's connections, showing how + /// long each connection has been established and the + /// traffic over that connection in Kbytes and messages for + /// each direction; + /// m - returns the usage count for each of commands supported + /// by the server; commands for which the usage count is + /// zero MAY be omitted; + /// o - returns a list of configured privileged users, + /// operators; + /// u - returns a string showing how long the server has been + /// up. /// - /// It is also RECOMMENDED that client and server access configuration be - /// published this way. + /// It is also RECOMMENDED that client and server access configuration be + /// published this way. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER - /// RPL_STATSLINKINFO RPL_STATSUPTIME - /// RPL_STATSCOMMANDS RPL_STATSOLINE - /// RPL_ENDOFSTATS + /// ERR_NOSUCHSERVER + /// RPL_STATSLINKINFO RPL_STATSUPTIME + /// RPL_STATSCOMMANDS RPL_STATSOLINE + /// RPL_ENDOFSTATS /// - /// Examples: + /// Examples: /// - /// STATS m ; Command to check the command usage - /// for the server you are connected to + /// STATS m ; Command to check the command usage + /// for the server you are connected to /// STATS(Option<(&'a str, Option<&'a str>)>), /// 3.4.5 Links message /// - /// Command: LINKS - /// Parameters: [ [ ] ] + /// Command: LINKS + /// Parameters: [ [ ] ] /// - /// With LINKS, a user can list all servernames, which are known by the - /// server answering the query. The returned list of servers MUST match - /// the mask, or if no mask is given, the full list is returned. + /// With LINKS, a user can list all servernames, which are known by the + /// server answering the query. The returned list of servers MUST match + /// the mask, or if no mask is given, the full list is returned. /// - /// If is given in addition to , the LINKS - /// command is forwarded to the first server found that matches that name - /// (if any), and that server is then required to answer the query. + /// If is given in addition to , the LINKS + /// command is forwarded to the first server found that matches that name + /// (if any), and that server is then required to answer the query. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER - /// RPL_LINKS RPL_ENDOFLINKS + /// ERR_NOSUCHSERVER + /// RPL_LINKS RPL_ENDOFLINKS /// - /// Examples: + /// Examples: /// /// LINKS *.au ; Command to list all servers which /// have a name that matches *.au; @@ -849,20 +848,20 @@ pub enum Command<'a> { /// 3.4.6 Time message /// - /// Command: TIME - /// Parameters: [ ] + /// Command: TIME + /// Parameters: [ ] /// - /// The time command is used to query local time from the specified - /// server. If the parameter is not given, the server receiving - /// the command must reply to the query. + /// The time command is used to query local time from the specified + /// server. If the parameter is not given, the server receiving + /// the command must reply to the query. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER RPL_TIME + /// ERR_NOSUCHSERVER RPL_TIME /// - /// Examples: + /// Examples: /// TIME tolsun.oulu.fi ; check the time on the server /// "tolson.oulu.fi" /// @@ -870,26 +869,26 @@ pub enum Command<'a> { /// 3.4.7 Connect message /// - /// Command: CONNECT - /// Parameters: [ ] + /// Command: CONNECT + /// Parameters: [ ] /// - /// The CONNECT command can be used to request a server to try to - /// establish a new connection to another server immediately. CONNECT is - /// a privileged command and SHOULD be available only to IRC Operators. - /// If a is given and its mask doesn't match name of the - /// parsing server, the CONNECT attempt is sent to the first match of - /// remote server. Otherwise the CONNECT attempt is made by the server - /// processing the request. + /// The CONNECT command can be used to request a server to try to + /// establish a new connection to another server immediately. CONNECT is + /// a privileged command and SHOULD be available only to IRC Operators. + /// If a is given and its mask doesn't match name of the + /// parsing server, the CONNECT attempt is sent to the first match of + /// remote server. Otherwise the CONNECT attempt is made by the server + /// processing the request. /// - /// The server receiving a remote CONNECT command SHOULD generate a - /// WALLOPS message describing the source and target of the request. + /// The server receiving a remote CONNECT command SHOULD generate a + /// WALLOPS message describing the source and target of the request. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER ERR_NOPRIVILEGES - /// ERR_NEEDMOREPARAMS + /// ERR_NOSUCHSERVER ERR_NOPRIVILEGES + /// ERR_NEEDMOREPARAMS /// - /// Examples: + /// Examples: /// /// CONNECT tolsun.oulu.fi 6667 ; Command to attempt to connect local /// server to tolsun.oulu.fi on port 6667 @@ -898,57 +897,57 @@ pub enum Command<'a> { /// 3.4.8 Trace message /// - /// Command: TRACE - /// Parameters: [ ] + /// Command: TRACE + /// Parameters: [ ] /// - /// TRACE command is used to find the route to specific server and - /// information about its peers. Each server that processes this command - /// MUST report to the sender about it. The replies from pass-through - /// links form a chain, which shows route to destination. After sending - /// this reply back, the query MUST be sent to the next server until - /// given server is reached. + /// TRACE command is used to find the route to specific server and + /// information about its peers. Each server that processes this command + /// MUST report to the sender about it. The replies from pass-through + /// links form a chain, which shows route to destination. After sending + /// this reply back, the query MUST be sent to the next server until + /// given server is reached. /// - /// TRACE command is used to find the route to specific server. Each - /// server that processes this message MUST tell the sender about it by - /// sending a reply indicating it is a pass-through link, forming a chain - /// of replies. After sending this reply back, it MUST then send the - /// TRACE message to the next server until given server is reached. If - /// the parameter is omitted, it is RECOMMENDED that TRACE - /// command sends a message to the sender telling which servers the local - /// server has direct connection to. + /// TRACE command is used to find the route to specific server. Each + /// server that processes this message MUST tell the sender about it by + /// sending a reply indicating it is a pass-through link, forming a chain + /// of replies. After sending this reply back, it MUST then send the + /// TRACE message to the next server until given server is reached. If + /// the parameter is omitted, it is RECOMMENDED that TRACE + /// command sends a message to the sender telling which servers the local + /// server has direct connection to. /// - /// If the destination given by is an actual server, the - /// destination server is REQUIRED to report all servers, services and - /// operators which are connected to it; if the command was issued by an - /// operator, the server MAY also report all users which are connected to - /// it. If the destination given by is a nickname, then only a - /// reply for that nickname is given. If the parameter is - /// omitted, it is RECOMMENDED that the TRACE command is parsed as - /// targeted to the processing server. + /// If the destination given by is an actual server, the + /// destination server is REQUIRED to report all servers, services and + /// operators which are connected to it; if the command was issued by an + /// operator, the server MAY also report all users which are connected to + /// it. If the destination given by is a nickname, then only a + /// reply for that nickname is given. If the parameter is + /// omitted, it is RECOMMENDED that the TRACE command is parsed as + /// targeted to the processing server. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER + /// ERR_NOSUCHSERVER /// - /// If the TRACE message is destined for another server, all - /// intermediate servers must return a RPL_TRACELINK reply to indicate - /// that the TRACE passed through it and where it is going next. + /// If the TRACE message is destined for another server, all + /// intermediate servers must return a RPL_TRACELINK reply to indicate + /// that the TRACE passed through it and where it is going next. /// - /// RPL_TRACELINK + /// RPL_TRACELINK /// - /// A TRACE reply may be composed of any number of the following - /// numeric replies. + /// A TRACE reply may be composed of any number of the following + /// numeric replies. /// - /// RPL_TRACECONNECTING RPL_TRACEHANDSHAKE - /// RPL_TRACEUNKNOWN RPL_TRACEOPERATOR - /// RPL_TRACEUSER RPL_TRACESERVER - /// RPL_TRACESERVICE RPL_TRACENEWTYPE - /// RPL_TRACECLASS RPL_TRACELOG - /// RPL_TRACEEND + /// RPL_TRACECONNECTING RPL_TRACEHANDSHAKE + /// RPL_TRACEUNKNOWN RPL_TRACEOPERATOR + /// RPL_TRACEUSER RPL_TRACESERVER + /// RPL_TRACESERVICE RPL_TRACENEWTYPE + /// RPL_TRACECLASS RPL_TRACELOG + /// RPL_TRACEEND /// - /// Examples: + /// Examples: /// /// TRACE *.oulu.fi ; TRACE to a server matching /// *.oulu.fi @@ -957,23 +956,23 @@ pub enum Command<'a> { /// 3.4.9 Admin command /// - /// Command: ADMIN - /// Parameters: [ ] + /// Command: ADMIN + /// Parameters: [ ] /// - /// The admin command is used to find information about the administrator - /// of the given server, or current server if parameter is - /// omitted. Each server MUST have the ability to forward ADMIN messages - /// to other servers. + /// The admin command is used to find information about the administrator + /// of the given server, or current server if parameter is + /// omitted. Each server MUST have the ability to forward ADMIN messages + /// to other servers. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER - /// RPL_ADMINME RPL_ADMINLOC1 - /// RPL_ADMINLOC2 RPL_ADMINEMAIL + /// ERR_NOSUCHSERVER + /// RPL_ADMINME RPL_ADMINLOC1 + /// RPL_ADMINLOC2 RPL_ADMINEMAIL /// - /// Examples: + /// Examples: /// /// ADMIN tolsun.oulu.fi ; request an ADMIN reply from /// tolsun.oulu.fi @@ -985,22 +984,22 @@ pub enum Command<'a> { /// 3.4.10 Info command /// - /// Command: INFO - /// Parameters: [ ] + /// Command: INFO + /// Parameters: [ ] /// - /// The INFO command is REQUIRED to return information describing the - /// server: its version, when it was compiled, the patchlevel, when it - /// was started, and any other miscellaneous information which may be - /// considered to be relevant. + /// The INFO command is REQUIRED to return information describing the + /// server: its version, when it was compiled, the patchlevel, when it + /// was started, and any other miscellaneous information which may be + /// considered to be relevant. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER - /// RPL_INFO RPL_ENDOFINFO + /// ERR_NOSUCHSERVER + /// RPL_INFO RPL_ENDOFINFO /// - /// Examples: + /// Examples: /// /// INFO csd.bu.edu ; request an INFO reply from /// csd.bu.edu @@ -1012,32 +1011,32 @@ pub enum Command<'a> { /// 3.5.1 Servlist message /// - /// Command: SERVLIST - /// Parameters: [ [ ] ] + /// Command: SERVLIST + /// Parameters: [ [ ] ] /// - /// The SERVLIST command is used to list services currently connected to - /// the network and visible to the user issuing the command. The - /// optional parameters may be used to restrict the result of the query - /// (to matching services names, and services type). + /// The SERVLIST command is used to list services currently connected to + /// the network and visible to the user issuing the command. The + /// optional parameters may be used to restrict the result of the query + /// (to matching services names, and services type). /// - /// Numeric Replies: + /// Numeric Replies: /// - /// RPL_SERVLIST RPL_SERVLISTEND + /// RPL_SERVLIST RPL_SERVLISTEND /// SERVLIST(Option<(&'a str, Option<&'a str>)>), /// 3.5.2 Squery /// - /// Command: SQUERY - /// Parameters: + /// Command: SQUERY + /// Parameters: /// - /// The SQUERY command is used similarly to PRIVMSG. The only difference - /// is that the recipient MUST be a service. This is the only way for a - /// text message to be delivered to a service. + /// The SQUERY command is used similarly to PRIVMSG. The only difference + /// is that the recipient MUST be a service. This is the only way for a + /// text message to be delivered to a service. /// - /// See PRIVMSG for more details on replies and example. + /// See PRIVMSG for more details on replies and example. /// - /// Examples: + /// Examples: /// /// SQUERY irchelp :HELP privmsg /// ; Message to the service with @@ -1051,29 +1050,29 @@ pub enum Command<'a> { /// 3.6.1 Who query /// - /// Command: WHO - /// Parameters: [ [ "o" ] ] + /// Command: WHO + /// Parameters: [ [ "o" ] ] /// - /// The WHO command is used by a client to generate a query which returns - /// a list of information which 'matches' the parameter given by - /// the client. In the absence of the parameter, all visible - /// (users who aren't invisible (user mode +i) and who don't have a - /// common channel with the requesting client) are listed. The same - /// result can be achieved by using a of "0" or any wildcard which - /// will end up matching every visible user. + /// The WHO command is used by a client to generate a query which returns + /// a list of information which 'matches' the parameter given by + /// the client. In the absence of the parameter, all visible + /// (users who aren't invisible (user mode +i) and who don't have a + /// common channel with the requesting client) are listed. The same + /// result can be achieved by using a of "0" or any wildcard which + /// will end up matching every visible user. /// - /// The passed to WHO is matched against users' host, server, real - /// name and nickname if the channel cannot be found. + /// The passed to WHO is matched against users' host, server, real + /// name and nickname if the channel cannot be found. /// - /// If the "o" parameter is passed only operators are returned according - /// to the supplied. + /// If the "o" parameter is passed only operators are returned according + /// to the supplied. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER - /// RPL_WHOREPLY RPL_ENDOFWHO + /// ERR_NOSUCHSERVER + /// RPL_WHOREPLY RPL_ENDOFWHO /// - /// Examples: + /// Examples: /// /// WHO *.fi ; Command to list all users who match /// against "*.fi". @@ -1086,34 +1085,34 @@ pub enum Command<'a> { /// 3.6.2 Whois query /// - /// Command: WHOIS - /// Parameters: [ ] *( "," ) + /// Command: WHOIS + /// Parameters: [ ] *( "," ) /// - /// This command is used to query information about particular user. - /// The server will answer this command with several numeric messages - /// indicating different statuses of each user which matches the mask (if - /// you are entitled to see them). If no wildcard is present in the - /// , any information about that nick which you are allowed to see - /// is presented. + /// This command is used to query information about particular user. + /// The server will answer this command with several numeric messages + /// indicating different statuses of each user which matches the mask (if + /// you are entitled to see them). If no wildcard is present in the + /// , any information about that nick which you are allowed to see + /// is presented. /// - /// If the parameter is specified, it sends the query to a - /// specific server. It is useful if you want to know how long the user - /// in question has been idle as only local server (i.e., the server the - /// user is directly connected to) knows that information, while - /// everything else is globally known. + /// If the parameter is specified, it sends the query to a + /// specific server. It is useful if you want to know how long the user + /// in question has been idle as only local server (i.e., the server the + /// user is directly connected to) knows that information, while + /// everything else is globally known. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER ERR_NONICKNAMEGIVEN - /// RPL_WHOISUSER RPL_WHOISCHANNELS - /// RPL_WHOISCHANNELS RPL_WHOISSERVER - /// RPL_AWAY RPL_WHOISOPERATOR - /// RPL_WHOISIDLE ERR_NOSUCHNICK - /// RPL_ENDOFWHOIS + /// ERR_NOSUCHSERVER ERR_NONICKNAMEGIVEN + /// RPL_WHOISUSER RPL_WHOISCHANNELS + /// RPL_WHOISCHANNELS RPL_WHOISSERVER + /// RPL_AWAY RPL_WHOISOPERATOR + /// RPL_WHOISIDLE ERR_NOSUCHNICK + /// RPL_ENDOFWHOIS /// - /// Examples: + /// Examples: /// /// WHOIS wiz ; return available user information /// about nick WiZ @@ -1125,28 +1124,28 @@ pub enum Command<'a> { /// 3.6.3 Whowas /// - /// Command: WHOWAS - /// Parameters: *( "," ) [ [ ] ] + /// Command: WHOWAS + /// Parameters: *( "," ) [ [ ] ] /// - /// Whowas asks for information about a nickname which no longer exists. - /// This may either be due to a nickname change or the user leaving IRC. - /// In response to this query, the server searches through its nickname - /// history, looking for any nicks which are lexically the same (no wild - /// card matching here). The history is searched backward, returning the - /// most recent entry first. If there are multiple entries, up to - /// replies will be returned (or all of them if no - /// parameter is given). If a non-positive number is passed as being - /// , then a full search is done. + /// Whowas asks for information about a nickname which no longer exists. + /// This may either be due to a nickname change or the user leaving IRC. + /// In response to this query, the server searches through its nickname + /// history, looking for any nicks which are lexically the same (no wild + /// card matching here). The history is searched backward, returning the + /// most recent entry first. If there are multiple entries, up to + /// replies will be returned (or all of them if no + /// parameter is given). If a non-positive number is passed as being + /// , then a full search is done. /// - /// Wildcards are allowed in the parameter. + /// Wildcards are allowed in the parameter. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NONICKNAMEGIVEN ERR_WASNOSUCHNICK - /// RPL_WHOWASUSER RPL_WHOISSERVER - /// RPL_ENDOFWHOWAS + /// ERR_NONICKNAMEGIVEN ERR_WASNOSUCHNICK + /// RPL_WHOWASUSER RPL_WHOISSERVER + /// RPL_ENDOFWHOWAS /// - /// Examples: + /// Examples: /// /// WHOWAS Wiz ; return all information in the nick /// history about nick "WiZ"; @@ -1163,50 +1162,50 @@ pub enum Command<'a> { /// 3.7.1 Kill message /// - /// Command: KILL - /// Parameters: - /// - /// The KILL command is used to cause a client-server connection to be - /// closed by the server which has the actual connection. Servers - /// generate KILL messages on nickname collisions. It MAY also be - /// available available to users who have the operator status. - /// - /// Clients which have automatic reconnect algorithms effectively make - /// this command useless since the disconnection is only brief. It does - /// however break the flow of data and can be used to stop large amounts - /// of 'flooding' from abusive users or accidents. Abusive users usually - /// don't care as they will reconnect promptly and resume their abusive - /// behaviour. To prevent this command from being abused, any user may - /// elect to receive KILL messages generated for others to keep an 'eye' - /// on would be trouble spots. - /// - /// In an arena where nicknames are REQUIRED to be globally unique at all - /// times, KILL messages are sent whenever 'duplicates' are detected - /// (that is an attempt to register two users with the same nickname) in - /// the hope that both of them will disappear and only 1 reappear. - /// - /// When a client is removed as the result of a KILL message, the server - /// SHOULD add the nickname to the list of unavailable nicknames in an - /// attempt to avoid clients to reuse this name immediately which is - /// usually the pattern of abusive behaviour often leading to useless - /// "KILL loops". See the "IRC Server Protocol" document [IRC-SERVER] - /// for more information on this procedure. - /// - /// The comment given MUST reflect the actual reason for the KILL. For - /// server-generated KILLs it usually is made up of details concerning - /// the origins of the two conflicting nicknames. For users it is left - /// up to them to provide an adequate reason to satisfy others who see - /// it. To prevent/discourage fake KILLs from being generated to hide - /// the identify of the KILLer, the comment also shows a 'kill-path' - /// which is updated by each server it passes through, each prepending - /// its name to the path. - /// - /// Numeric Replies: - /// - /// ERR_NOPRIVILEGES ERR_NEEDMOREPARAMS - /// ERR_NOSUCHNICK ERR_CANTKILLSERVER - /// - /// NOTE: + /// Command: KILL + /// Parameters: + /// + /// The KILL command is used to cause a client-server connection to be + /// closed by the server which has the actual connection. Servers + /// generate KILL messages on nickname collisions. It MAY also be + /// available available to users who have the operator status. + /// + /// Clients which have automatic reconnect algorithms effectively make + /// this command useless since the disconnection is only brief. It does + /// however break the flow of data and can be used to stop large amounts + /// of 'flooding' from abusive users or accidents. Abusive users usually + /// don't care as they will reconnect promptly and resume their abusive + /// behaviour. To prevent this command from being abused, any user may + /// elect to receive KILL messages generated for others to keep an 'eye' + /// on would be trouble spots. + /// + /// In an arena where nicknames are REQUIRED to be globally unique at all + /// times, KILL messages are sent whenever 'duplicates' are detected + /// (that is an attempt to register two users with the same nickname) in + /// the hope that both of them will disappear and only 1 reappear. + /// + /// When a client is removed as the result of a KILL message, the server + /// SHOULD add the nickname to the list of unavailable nicknames in an + /// attempt to avoid clients to reuse this name immediately which is + /// usually the pattern of abusive behaviour often leading to useless + /// "KILL loops". See the "IRC Server Protocol" document [IRC-SERVER] + /// for more information on this procedure. + /// + /// The comment given MUST reflect the actual reason for the KILL. For + /// server-generated KILLs it usually is made up of details concerning + /// the origins of the two conflicting nicknames. For users it is left + /// up to them to provide an adequate reason to satisfy others who see + /// it. To prevent/discourage fake KILLs from being generated to hide + /// the identify of the KILLer, the comment also shows a 'kill-path' + /// which is updated by each server it passes through, each prepending + /// its name to the path. + /// + /// Numeric Replies: + /// + /// ERR_NOPRIVILEGES ERR_NEEDMOREPARAMS + /// ERR_NOSUCHNICK ERR_CANTKILLSERVER + /// + /// NOTE: /// It is RECOMMENDED that only Operators be allowed to kill other users /// with KILL command. This command has been the subject of many /// controversies over the years, and along with the above @@ -1217,27 +1216,27 @@ pub enum Command<'a> { /// 3.7.2 Ping message /// - /// Command: PING - /// Parameters: [ ] + /// Command: PING + /// Parameters: [ ] /// - /// The PING command is used to test the presence of an active client or - /// server at the other end of the connection. Servers send a PING - /// message at regular intervals if no other activity detected coming - /// from a connection. If a connection fails to respond to a PING - /// message within a set amount of time, that connection is closed. A - /// PING message MAY be sent even if the connection is active. + /// The PING command is used to test the presence of an active client or + /// server at the other end of the connection. Servers send a PING + /// message at regular intervals if no other activity detected coming + /// from a connection. If a connection fails to respond to a PING + /// message within a set amount of time, that connection is closed. A + /// PING message MAY be sent even if the connection is active. /// - /// When a PING message is received, the appropriate PONG message MUST be - /// sent as reply to (server which sent the PING message out) - /// as soon as possible. If the parameter is specified, it - /// represents the target of the ping, and the message gets forwarded - /// there. + /// When a PING message is received, the appropriate PONG message MUST be + /// sent as reply to (server which sent the PING message out) + /// as soon as possible. If the parameter is specified, it + /// represents the target of the ping, and the message gets forwarded + /// there. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOORIGIN ERR_NOSUCHSERVER + /// ERR_NOORIGIN ERR_NOSUCHSERVER /// - /// Examples: + /// Examples: /// /// PING tolsun.oulu.fi ; Command to send a PING message to /// server @@ -1252,19 +1251,19 @@ pub enum Command<'a> { /// 3.7.3 Pong message /// - /// Command: PONG - /// Parameters: [ ] + /// Command: PONG + /// Parameters: [ ] /// - /// PONG message is a reply to ping message. If parameter is - /// given, this message MUST be forwarded to given target. The - /// parameter is the name of the entity who has responded to PING message - /// and generated this message. + /// PONG message is a reply to ping message. If parameter is + /// given, this message MUST be forwarded to given target. The + /// parameter is the name of the entity who has responded to PING message + /// and generated this message. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOORIGIN ERR_NOSUCHSERVER + /// ERR_NOORIGIN ERR_NOSUCHSERVER /// - /// Example: + /// Example: /// /// PONG csd.bu.edu tolsun.oulu.fi ; PONG message from csd.bu.edu to /// tolsun.oulu.fi @@ -1273,32 +1272,32 @@ pub enum Command<'a> { /// 3.7.4 Error /// - /// Command: ERROR - /// Parameters: + /// Command: ERROR + /// Parameters: /// - /// The ERROR command is for use by servers when reporting a serious or - /// fatal error to its peers. It may also be sent from one server to - /// another but MUST NOT be accepted from any normal unknown clients. + /// The ERROR command is for use by servers when reporting a serious or + /// fatal error to its peers. It may also be sent from one server to + /// another but MUST NOT be accepted from any normal unknown clients. /// - /// Only an ERROR message SHOULD be used for reporting errors which occur - /// with a server-to-server link. An ERROR message is sent to the server - /// at the other end (which reports it to appropriate local users and - /// logs) and to appropriate local users and logs. It is not to be - /// passed onto any other servers by a server if it is received from a - /// server. + /// Only an ERROR message SHOULD be used for reporting errors which occur + /// with a server-to-server link. An ERROR message is sent to the server + /// at the other end (which reports it to appropriate local users and + /// logs) and to appropriate local users and logs. It is not to be + /// passed onto any other servers by a server if it is received from a + /// server. /// - /// The ERROR message is also used before terminating a client - /// connection. + /// The ERROR message is also used before terminating a client + /// connection. /// - /// When a server sends a received ERROR message to its operators, the - /// message SHOULD be encapsulated inside a NOTICE message, indicating - /// that the client was not responsible for the error. + /// When a server sends a received ERROR message to its operators, the + /// message SHOULD be encapsulated inside a NOTICE message, indicating + /// that the client was not responsible for the error. /// - /// Numerics: + /// Numerics: /// - /// None. + /// None. /// - /// Examples: + /// Examples: /// /// ERROR :Server *.fi already exists ; ERROR message to the other server /// which caused this error. @@ -1311,29 +1310,29 @@ pub enum Command<'a> { /// 4.1 Away /// - /// Command: AWAY - /// Parameters: [ ] + /// Command: AWAY + /// Parameters: [ ] /// - /// With the AWAY command, clients can set an automatic reply string for - /// any PRIVMSG commands directed at them (not to a channel they are on). - /// The server sends an automatic reply to the client sending the PRIVMSG - /// command. The only replying server is the one to which the sending - /// client is connected to. + /// With the AWAY command, clients can set an automatic reply string for + /// any PRIVMSG commands directed at them (not to a channel they are on). + /// The server sends an automatic reply to the client sending the PRIVMSG + /// command. The only replying server is the one to which the sending + /// client is connected to. /// - /// The AWAY command is used either with one parameter, to set an AWAY - /// message, or with no parameters, to remove the AWAY message. + /// The AWAY command is used either with one parameter, to set an AWAY + /// message, or with no parameters, to remove the AWAY message. /// - /// Because of its high cost (memory and bandwidth wise), the AWAY - /// message SHOULD only be used for client-server communication. A - /// server MAY choose to silently ignore AWAY messages received from - /// other servers. To update the away status of a client across servers, - /// the user mode 'a' SHOULD be used instead. (See Section 3.1.5) + /// Because of its high cost (memory and bandwidth wise), the AWAY + /// message SHOULD only be used for client-server communication. A + /// server MAY choose to silently ignore AWAY messages received from + /// other servers. To update the away status of a client across servers, + /// the user mode 'a' SHOULD be used instead. (See Section 3.1.5) /// - /// Numeric Replies: + /// Numeric Replies: /// - /// RPL_UNAWAY RPL_NOWAWAY + /// RPL_UNAWAY RPL_NOWAWAY /// - /// Example: + /// Example: /// /// AWAY :Gone to lunch. Back in 5 ; Command to set away message to /// "Gone to lunch. Back in 5". @@ -1342,19 +1341,18 @@ pub enum Command<'a> { /// 4.2 Rehash message /// - /// Command: REHASH - /// Parameters: None - /// - /// The rehash command is an administrative command which can be used by - /// an operator to force the server to re-read and process its - /// configuration file. + /// Command: REHASH + /// Parameters: None /// - /// Numeric Replies: + /// The rehash command is an administrative command which can be used by + /// an operator to force the server to re-read and process its + /// configuration file. /// - /// RPL_REHASHING ERR_NOPRIVILEGES + /// Numeric Replies: /// + /// RPL_REHASHING ERR_NOPRIVILEGES /// - /// Example: + /// Example: /// /// REHASH ; message from user with operator /// status to server asking it to reread @@ -1364,23 +1362,23 @@ pub enum Command<'a> { /// 4.3 Die message /// - /// Command: DIE - /// Parameters: None + /// Command: DIE + /// Parameters: None /// - /// An operator can use the DIE command to shutdown the server. This - /// message is optional since it may be viewed as a risk to allow - /// arbitrary people to connect to a server as an operator and execute - /// this command. + /// An operator can use the DIE command to shutdown the server. This + /// message is optional since it may be viewed as a risk to allow + /// arbitrary people to connect to a server as an operator and execute + /// this command. /// - /// The DIE command MUST always be fully processed by the server to which - /// the sending client is connected and MUST NOT be passed onto other - /// connected servers. + /// The DIE command MUST always be fully processed by the server to which + /// the sending client is connected and MUST NOT be passed onto other + /// connected servers. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOPRIVILEGES + /// ERR_NOPRIVILEGES /// - /// Example: + /// Example: /// /// DIE ; no parameters required. /// @@ -1388,23 +1386,23 @@ pub enum Command<'a> { /// 4.4 Restart message /// - /// Command: RESTART - /// Parameters: None + /// Command: RESTART + /// Parameters: None /// - /// An operator can use the restart command to force the server to - /// restart itself. This message is optional since it may be viewed as a - /// risk to allow arbitrary people to connect to a server as an operator - /// and execute this command, causing (at least) a disruption to service. + /// An operator can use the restart command to force the server to + /// restart itself. This message is optional since it may be viewed as a + /// risk to allow arbitrary people to connect to a server as an operator + /// and execute this command, causing (at least) a disruption to service. /// - /// The RESTART command MUST always be fully processed by the server to - /// which the sending client is connected and MUST NOT be passed onto - /// other connected servers. + /// The RESTART command MUST always be fully processed by the server to + /// which the sending client is connected and MUST NOT be passed onto + /// other connected servers. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOPRIVILEGES + /// ERR_NOPRIVILEGES /// - /// Example: + /// Example: /// /// RESTART ; no parameters required. /// @@ -1412,28 +1410,28 @@ pub enum Command<'a> { /// 4.5 Summon message /// - /// Command: SUMMON - /// Parameters: [ [ ] ] + /// Command: SUMMON + /// Parameters: [ [ ] ] /// - /// The SUMMON command can be used to give users who are on a host - /// running an IRC server a message asking them to please join IRC. This - /// message is only sent if the target server (a) has SUMMON enabled, (b) - /// the user is logged in and (c) the server process can write to the - /// user's tty (or similar). + /// The SUMMON command can be used to give users who are on a host + /// running an IRC server a message asking them to please join IRC. This + /// message is only sent if the target server (a) has SUMMON enabled, (b) + /// the user is logged in and (c) the server process can write to the + /// user's tty (or similar). /// - /// If no parameter is given it tries to summon from the - /// server the client is connected to is assumed as the target. + /// If no parameter is given it tries to summon from the + /// server the client is connected to is assumed as the target. /// - /// If summon is not enabled in a server, it MUST return the - /// ERR_SUMMONDISABLED numeric. + /// If summon is not enabled in a server, it MUST return the + /// ERR_SUMMONDISABLED numeric. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NORECIPIENT ERR_FILEERROR - /// ERR_NOLOGIN ERR_NOSUCHSERVER - /// ERR_SUMMONDISABLED RPL_SUMMONING + /// ERR_NORECIPIENT ERR_FILEERROR + /// ERR_NOLOGIN ERR_NOSUCHSERVER + /// ERR_SUMMONDISABLED RPL_SUMMONING /// - /// Examples: + /// Examples: /// /// SUMMON jto ; summon user jto on the server's /// host @@ -1446,31 +1444,31 @@ pub enum Command<'a> { /// 4.6 Users /// - /// Command: USERS - /// Parameters: [ ] + /// Command: USERS + /// Parameters: [ ] /// - /// The USERS command returns a list of users logged into the server in a - /// format similar to the UNIX commands who(1), rusers(1) and finger(1). - /// If disabled, the correct numeric MUST be returned to indicate this. + /// The USERS command returns a list of users logged into the server in a + /// format similar to the UNIX commands who(1), rusers(1) and finger(1). + /// If disabled, the correct numeric MUST be returned to indicate this. /// - /// Because of the security implications of such a command, it SHOULD be - /// disabled by default in server implementations. Enabling it SHOULD - /// require recompiling the server or some equivalent change rather than - /// simply toggling an option and restarting the server. The procedure - /// to enable this command SHOULD also include suitable large comments. + /// Because of the security implications of such a command, it SHOULD be + /// disabled by default in server implementations. Enabling it SHOULD + /// require recompiling the server or some equivalent change rather than + /// simply toggling an option and restarting the server. The procedure + /// to enable this command SHOULD also include suitable large comments. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NOSUCHSERVER ERR_FILEERROR - /// RPL_USERSSTART RPL_USERS - /// RPL_NOUSERS RPL_ENDOFUSERS - /// ERR_USERSDISABLED + /// ERR_NOSUCHSERVER ERR_FILEERROR + /// RPL_USERSSTART RPL_USERS + /// RPL_NOUSERS RPL_ENDOFUSERS + /// ERR_USERSDISABLED /// - /// Disabled Reply: + /// Disabled Reply: /// - /// ERR_USERSDISABLED + /// ERR_USERSDISABLED /// - /// Example: + /// Example: /// /// USERS eff.org ; request a list of users logged in /// on server eff.org @@ -1479,24 +1477,24 @@ pub enum Command<'a> { /// 4.7 Operwall message /// - /// Command: WALLOPS - /// Parameters: + /// Command: WALLOPS + /// Parameters: /// - /// The WALLOPS command is used to send a message to all currently - /// connected users who have set the 'w' user mode for themselves. (See - /// Section 3.1.5 "User modes"). + /// The WALLOPS command is used to send a message to all currently + /// connected users who have set the 'w' user mode for themselves. (See + /// Section 3.1.5 "User modes"). /// - /// After implementing WALLOPS as a user command it was found that it was - /// often and commonly abused as a means of sending a message to a lot of - /// people. Due to this, it is RECOMMENDED that the implementation of - /// WALLOPS allows and recognizes only servers as the originators of - /// WALLOPS. + /// After implementing WALLOPS as a user command it was found that it was + /// often and commonly abused as a means of sending a message to a lot of + /// people. Due to this, it is RECOMMENDED that the implementation of + /// WALLOPS allows and recognizes only servers as the originators of + /// WALLOPS. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// ERR_NEEDMOREPARAMS + /// ERR_NEEDMOREPARAMS /// - /// Example: + /// Example: /// /// :csd.bu.edu WALLOPS :Connect '*.uiuc.edu 6667' from Joshua ; WALLOPS /// message from csd.bu.edu announcing a @@ -1507,19 +1505,19 @@ pub enum Command<'a> { /// 4.8 Userhost message /// - /// Command: USERHOST - /// Parameters: *( SPACE ) + /// Command: USERHOST + /// Parameters: *( SPACE ) /// - /// The USERHOST command takes a list of up to 5 nicknames, each - /// separated by a space character and returns a list of information - /// about each nickname that it found. The returned list has each reply - /// separated by a space. + /// The USERHOST command takes a list of up to 5 nicknames, each + /// separated by a space character and returns a list of information + /// about each nickname that it found. The returned list has each reply + /// separated by a space. /// - /// Numeric Replies: + /// Numeric Replies: /// - /// RPL_USERHOST ERR_NEEDMOREPARAMS + /// RPL_USERHOST ERR_NEEDMOREPARAMS /// - /// Example: + /// Example: /// /// USERHOST Wiz Michael syrk ; USERHOST request for information on /// nicks "Wiz", "Michael", and "syrk" -- cgit v1.2.3