1 /++ 2 + 3 +/ 4 module virc.numerics.definitions; 5 6 import std.meta : AliasSeq; 7 8 /// 9 enum Numeric { 10 //RFC1459 Command responses: https://tools.ietf.org/html/rfc1459#section-6.2 11 /// 12 RPL_TRACELINK = "200", 13 /// 14 RPL_TRACECONNECTING = "201", 15 /// 16 RPL_TRACEHANDSHAKE = "202", 17 /// 18 RPL_TRACEUNKNOWN = "203", 19 /// 20 RPL_TRACEOPERATOR = "204", 21 /// 22 RPL_TRACEUSER = "205", 23 /// 24 RPL_TRACESERVER = "206", 25 /// 26 RPL_TRACENEWTYPE = "208", 27 /// 28 RPL_STATSLINKINFO = "211", 29 /// 30 RPL_STATSCOMMANDS = "212", 31 /// 32 RPL_STATSCLINE = "213", 33 /// 34 RPL_STATSNLINE = "214", 35 /// 36 RPL_STATSILINE = "215", 37 /// 38 RPL_STATSKLINE = "216", 39 /// 40 RPL_STATSYLINE = "218", 41 /// 42 RPL_ENDOFSTATS = "219", 43 /// 44 RPL_STATSLLINE = "241", 45 /// 46 RPL_STATSUPTIME = "242", 47 /// 48 RPL_STATSOLINE = "243", 49 /// 50 RPL_STATSHLINE = "244", 51 /// 52 RPL_UMODEIS = "221", 53 /// 54 RPL_LUSERCLIENT = "251", 55 /// 56 RPL_LUSEROP = "252", 57 /// 58 RPL_LUSERUNKNOWN = "253", 59 /// 60 RPL_LUSERCHANNELS = "254", 61 /// 62 RPL_LUSERME = "255", 63 /// 64 RPL_ADMINME = "256", 65 /// 66 RPL_ADMINLOC1 = "257", 67 /// 68 RPL_ADMINLOC2 = "258", 69 /// 70 RPL_ADMINEMAIL = "259", 71 /// 72 RPL_TRACELOG = "261", 73 /// 74 RPL_NONE = "300", 75 /// 76 RPL_AWAY = "301", 77 /// 78 RPL_USERHOST = "302", 79 /// 80 RPL_ISON = "303", 81 /// 82 RPL_UNAWAY = "305", 83 /// 84 RPL_NOWAWAY = "306", 85 /// 86 RPL_WHOISUSER = "311", 87 /// 88 RPL_WHOISSERVER = "312", 89 /// 90 RPL_WHOISOPERATOR = "313", 91 /// 92 RPL_WHOWASUSER = "314", 93 /// 94 RPL_ENDOFWHO = "315", 95 /// 96 RPL_WHOISIDLE = "317", 97 /// 98 RPL_ENDOFWHOIS = "318", 99 /// 100 RPL_WHOISCHANNELS = "319", 101 /// 102 RPL_LISTSTART = "321", 103 /// 104 RPL_LIST = "322", 105 /// 106 RPL_LISTEND = "323", 107 /// 108 RPL_CHANNELMODEIS = "324", 109 /// 110 RPL_NOTOPIC = "331", 111 /// 112 RPL_TOPIC = "332", 113 /// 114 RPL_INVITING = "341", 115 /// 116 RPL_SUMMONING = "342", 117 /// 118 RPL_VERSION = "351", 119 /// 120 RPL_WHOREPLY = "352", 121 /// 122 RPL_NAMREPLY = "353", 123 /// 124 RPL_WHOSPCRPL = "354", 125 /// 126 RPL_LINKS = "364", 127 /// 128 RPL_ENDOFLINKS = "365", 129 /// 130 RPL_ENDOFNAMES = "366", 131 /// 132 RPL_BANLIST = "367", 133 /// 134 RPL_ENDOFBANLIST = "368", 135 /// 136 RPL_ENDOFWHOWAS = "369", 137 /// 138 RPL_INFO = "371", 139 /// 140 RPL_MOTD = "372", 141 /// 142 RPL_ENDOFINFO = "374", 143 /// 144 RPL_MOTDSTART = "375", 145 /// 146 RPL_ENDOFMOTD = "376", 147 /// 148 RPL_YOUREOPER = "381", 149 /// 150 RPL_REHASHING = "382", 151 /// 152 RPL_TIME = "391", 153 /// 154 RPL_USERSSTART = "392", 155 /// 156 RPL_USERS = "393", 157 /// 158 RPL_ENDOFUSERS = "394", 159 /// 160 RPL_NOUSERS = "395", 161 //RFC1459 Errors: https://tools.ietf.org/html/rfc1459#section-6.1 162 /// 163 ERR_NOSUCHNICK = "401", 164 /// 165 ERR_NOSUCHSERVER = "402", 166 /// 167 ERR_NOSUCHCHANNEL = "403", 168 /// 169 ERR_CANNOTSENDTOCHAN = "404", 170 /// 171 ERR_TOOMANYCHANNELS = "405", 172 /// 173 ERR_WASNOSUCHNICK = "406", 174 /// 175 ERR_TOOMANYTARGETS = "407", 176 /// 177 ERR_NOORIGIN = "409", 178 /// 179 ERR_NORECIPIENT = "411", 180 /// 181 ERR_NOTEXTTOSEND = "412", 182 /// 183 ERR_NOTOPLEVEL = "413", 184 /// 185 ERR_WILDTOPLEVEL = "414", 186 /// 187 ERR_UNKNOWNCOMMAND = "421", 188 /// 189 ERR_NOMOTD = "422", 190 /// 191 ERR_NOADMININFO = "423", 192 /// 193 ERR_FILEERROR = "424", 194 /// 195 ERR_NONICKNAMEGIVEN = "431", 196 /// 197 ERR_ERRONEUSNICKNAME = "432", 198 /// 199 ERR_NICKNAMEINUSE = "433", 200 /// 201 ERR_NICKCOLLISION = "436", 202 /// 203 ERR_USERNOTINCHANNEL = "441", 204 /// 205 ERR_NOTONCHANNEL = "442", 206 /// 207 ERR_USERONCHANNEL = "443", 208 /// 209 ERR_NOLOGIN = "444", 210 /// 211 ERR_SUMMONDISABLED = "445", 212 /// 213 ERR_USERSDISABLED = "446", 214 /// 215 ERR_NOTREGISTERED = "451", 216 /// 217 ERR_NEEDMOREPARAMS = "461", 218 /// 219 ERR_ALREADYREGISTRED = "462", 220 /// 221 ERR_NOPERMFORHOST = "463", 222 /// 223 ERR_PASSWDMISMATCH = "464", 224 /// 225 ERR_YOUREBANNEDCREEP = "465", 226 /// 227 ERR_KEYSET = "467", 228 /// 229 ERR_CHANNELISFULL = "471", 230 /// 231 ERR_UNKNOWNMODE = "472", 232 /// 233 ERR_INVITEONLYCHAN = "473", 234 /// 235 ERR_BANNEDFROMCHAN = "474", 236 /// 237 ERR_BADCHANNELKEY = "475", 238 /// 239 ERR_NOPRIVILEGES = "481", 240 /// 241 ERR_CHANOPRIVSNEEDED = "482", 242 /// 243 ERR_CANTKILLSERVER = "483", 244 /// 245 ERR_NOOPERHOST = "491", 246 /// 247 ERR_UMODEUNKNOWNFLAG = "501", 248 /// 249 ERR_USERSDONTMATCH = "502", 250 //RFC1459 Reserved: https://tools.ietf.org/html/rfc1459#section-6.3 251 //Obsolete or reserved for "future use" 252 /// 253 RPL_STATSQLINE = "217", 254 /// 255 RPL_SERVICEINFO = "231", 256 /// 257 RPL_ENDOFSERVICES = "232", 258 /// 259 RPL_SERVICE = "233", 260 /// 261 RPL_WHOISCHANOP = "316", 262 /// 263 RPL_KILLDONE = "361", 264 /// 265 RPL_CLOSING = "362", 266 /// 267 RPL_CLOSEEND = "363", 268 /// 269 RPL_INFOSTART = "373", 270 /// 271 RPL_MYPORTIS = "384", 272 /// 273 ERR_NOSERVICEHOST = "492", 274 //RFC2812 Command responses: https://tools.ietf.org/html/rfc2812#section-5.1 275 ///<client> :Welcome to the Internet Relay Network <nick>!<user>@<host> 276 RPL_WELCOME = "001", 277 ///<client> :Your host is <servername>, running version <version> 278 RPL_YOURHOST = "002", 279 ///<client> :This server was created <date> 280 RPL_CREATED = "003", 281 ///<client> <server_name> <version> <usermodes> <chanmodes> [chanmodes_with_a_parameter] 282 RPL_MYINFO = "004", 283 ///<client> :Try server <server_name>, port <port_number> 284 RPL_BOUNCE = "005", 285 ///<client> Service <class> <name> <type> <active_type> 286 RPL_TRACESERVICE = "207", 287 ///<client> Class <class> <count> 288 RPL_TRACECLASS = "209", 289 ///<client> <name> <server> <mask> <type> <hopcount> <info> 290 RPL_SERVLIST = "234", 291 ///<client> <mask> <type> :<info> 292 RPL_SERVLISTEND = "235", 293 ///??? 294 RPL_TRACEEND = "262", 295 ///<client> <server_name> <version>[.<debug_level>] :<info> 296 RPL_TRYAGAIN = "263", 297 ///<client> <channel> <nickname> 298 RPL_UNIQOPIS = "325", 299 ///<client> <channel> <invitemask> 300 RPL_INVITELIST = "346", 301 ///<client> <channel> :<info> 302 RPL_ENDOFINVITELIST = "347", 303 ///<client> <channel> <exceptionmask> [<who> <set-ts>] 304 RPL_EXCEPTLIST = "348", 305 ///<client> <channel> :<info> 306 RPL_ENDOFEXCEPTLIST = "349", 307 //RFC2812 Errors: https://tools.ietf.org/html/rfc2812#section-5.2 308 /// 309 ERR_NOSUCHSERVICE = "408", 310 /// 311 ERR_BADMASK = "415", 312 /// 313 ERR_TOOMANYMATCHES = "416", //Errata 314 /// 315 ERR_UNAVAILRESOURCE = "437", 316 /// 317 ERR_YOUWILLBEBANNED = "466", 318 /// 319 ERR_BADCHANMASK = "476", 320 /// 321 ERR_NOCHANMODES = "477", 322 /// 323 ERR_BANLISTFULL = "478", 324 /// 325 ERR_RESTRICTED = "484", 326 /// 327 ERR_UNIQOPPRIVSNEEDED = "485", 328 //RFC2812 Reserved: https://tools.ietf.org/html/rfc2812#section-5.3 329 /// 330 RPL_STATSVLINE = "240", 331 /// 332 RPL_STATSSLINE = "245", //244 in original doc, 245 in errata 333 /// 334 RPL_STATSPING = "246", 335 /// 336 RPL_STATSBLINE = "247", 337 /// 338 RPL_STATSDLINE = "250", 339 //Monitor: http://ircv3.net/specs/core/monitor-3.2.html 340 /// 341 RPL_MONONLINE = "730", 342 /// 343 RPL_MONOFFLINE = "731", 344 /// 345 RPL_MONLIST = "732", 346 /// 347 RPL_ENDOFMONLIST = "733", 348 /// 349 ERR_MONLISTFULL = "734", 350 //Metadata: WIP 351 /// <Target> <Key> <Visibility> :<Value> 352 RPL_WHOISKEYVALUE = "760", 353 /// <Target> <Key> <Visibility>[ :<Value>] 354 RPL_KEYVALUE = "761", 355 /// <Target> <Key> :key not set 356 RPL_KEYNOTSET = "766", 357 /// :<Key1> [<Key2> ...] 358 RPL_METADATASUBOK = "770", 359 /// :<Key1> [<Key2> ...] 360 RPL_METADATAUNSUBOK = "771", 361 /// :<Key1> [<Key2> ...] 362 RPL_METADATASUBS = "772", 363 /// <Target> [<RetryAfter>] 364 ERR_METADATASYNCLATER = "774", 365 //SASL: http://ircv3.net/specs/extensions/sasl-3.1.html 366 /// 367 RPL_LOGGEDIN = "900", 368 /// 369 RPL_LOGGEDOUT = "901", 370 /// 371 ERR_NICKLOCKED = "902", 372 /// 373 RPL_SASLSUCCESS = "903", 374 /// 375 ERR_SASLFAIL = "904", 376 /// 377 ERR_SASLTOOLONG = "905", 378 /// 379 ERR_SASLABORTED = "906", 380 /// 381 ERR_SASLALREADY = "907", 382 /// 383 RPL_SASLMECHS = "908", 384 //STARTTLS: http://ircv3.net/specs/extensions/tls-3.1.html 385 /// 386 RPL_STARTTLS = "670", 387 /// 388 ERR_STARTTLS = "691", 389 //IRCX: http://tools.ietf.org/id/draft-pfenning-irc-extensions-04.txt 390 //Pretty uncommon, but included for completeness 391 /// 392 IRCRPL_IRCX = "800", 393 /// 394 IRCRPL_ACCESSADD = "801", 395 /// 396 IRCRPL_ACCESSDELETE = "802", 397 /// 398 IRCRPL_ACCESSSTART = "803", 399 /// 400 IRCRPL_ACCESSLIST = "804", 401 /// 402 IRCRPL_ACCESSEND = "805", 403 /// 404 IRCRPL_EVENTADD = "806", 405 /// 406 IRCRPL_EVENTDEL = "807", 407 /// 408 IRCRPL_EVENTSTART = "808", 409 /// 410 IRCRPL_EVENTLIST = "809", 411 /// 412 IRCRPL_EVENTEND = "810", 413 /// 414 IRCRPL_LISTXSTART = "811", 415 /// 416 IRCRPL_LISTXLIST = "812", 417 /// 418 IRCRPL_LISTXPICS = "813", 419 /// 420 IRCRPL_LISTXTRUNC = "816", 421 /// 422 IRCRPL_LISTXEND = "817", 423 /// 424 IRCRPL_PROPLIST = "818", 425 /// 426 IRCRPL_PROPEND = "819", 427 /// 428 IRCERR_BADCOMMAND = "900", 429 /// 430 IRCERR_TOOMANYARGUMENTS = "901", 431 /// 432 IRCERR_BADFUNCTION = "902", 433 /// 434 IRCERR_BADLEVEL = "903", 435 /// 436 IRCERR_BADTAG = "904", 437 /// 438 IRCERR_BADPROPERTY = "905", 439 /// 440 IRCERR_BADVALUE = "906", 441 /// 442 IRCERR_RESOURCE = "907", 443 /// 444 IRCERR_SECURITY = "908", 445 /// 446 IRCERR_ALREADYAUTHENTICATED = "909", 447 /// 448 IRCERR_AUTHENTICATIONFAILED = "910", 449 /// 450 IRCERR_AUTHENTICATIONSUSPENDED = "911", 451 /// 452 IRCERR_UNKNOWNPACKAGE = "912", 453 /// 454 IRCERR_NOACCESS = "913", 455 /// 456 IRCERR_DUPACCESS = "914", 457 /// 458 IRCERR_MISACCESS = "915", 459 /// 460 IRCERR_TOOMANYACCESSES = "916", 461 /// 462 IRCERR_EVENTDUP = "918", 463 /// 464 IRCERR_EVENTMIS = "919", 465 /// 466 IRCERR_NOSUCHEVENT = "920", 467 /// 468 IRCERR_TOOMANYEVENTS = "921", 469 /// 470 IRCERR_NOWHISPER = "923", 471 /// 472 IRCERR_NOSUCHOBJECT = "924", 473 /// 474 IRCERR_NOTSUPPORTED = "925", 475 /// 476 IRCERR_CHANNELEXIST = "926", 477 /// 478 IRCERR_ALREADYONCHANNEL = "927", 479 /// 480 IRCERR_UNKNOWNERROR = "999", 481 //WATCH: https://github.com/grawity/irc-docs/blob/master/client/draft-meglio-irc-watch-00.txt 482 /// 483 RPL_GONEAWAY = "598", 484 /// 485 RPL_NOTAWAY = "599", 486 /// 487 RPL_LOGON = "600", 488 /// 489 RPL_LOGOFF = "601", 490 /// 491 RPL_WATCHOFF = "602", 492 /// 493 RPL_WATCHSTAT = "603", 494 /// 495 RPL_NOWON = "604", 496 /// 497 RPL_NOWOFF = "605", 498 /// 499 RPL_WATCHLIST = "606", 500 /// 501 RPL_ENDOFWATCHLIST = "607", 502 /// 503 RPL_CLEARWATCH = "608", 504 /// 505 RPL_NOWISAWAY = "609", 506 //Misc 507 /// 508 RPL_TEXT = "304", 509 //Unknown origin, but in use 510 /// 511 RPL_YOURID = "042", 512 /// 513 RPL_LOCALUSERS = "265", 514 /// 515 RPL_GLOBALUSERS = "266", 516 /// <nick> :has client certificate fingerprint <fingerprint> 517 RPL_WHOISCERTFP = "276", 518 /// 519 RPL_WHOISREGNICK = "307", 520 /// 521 RPL_WHOISACCOUNT = "330", 522 /// 523 RPL_TOPICWHOTIME = "333", 524 /// 525 RPL_WHOISHOST = "378", 526 /// <nick> :is using modes <modestring> 527 RPL_WHOISMODE = "379", 528 /// 529 RPL_HOSTHIDDEN = "396", 530 /// 531 RPL_WHOISSECURE = "671", 532 /// 533 ERR_NOPRIVS = "723", 534 //ISUPPORT: http://www.irc.org/tech_docs/draft-brocklesby-irc-isupport-03.txt 535 /// 536 RPL_ISUPPORT = "005" 537 } 538 alias noInformationNumerics = AliasSeq!( 539 Numeric.RPL_WELCOME, 540 Numeric.RPL_YOURHOST, 541 Numeric.RPL_CREATED, 542 543 Numeric.RPL_YOURID, 544 Numeric.RPL_LOCALUSERS, 545 Numeric.RPL_GLOBALUSERS, 546 Numeric.RPL_HOSTHIDDEN, 547 548 listEndNumerics, 549 listStartNumerics 550 ); 551 alias listStartNumerics =AliasSeq!( 552 Numeric.RPL_LISTSTART 553 ); 554 alias listEndNumerics =AliasSeq!( 555 Numeric.RPL_LISTEND, 556 Numeric.RPL_ENDOFNAMES, 557 Numeric.RPL_ENDOFMONLIST 558 );