3 unstable releases
0.2.1 | Aug 2, 2022 |
---|---|
0.2.0 | Aug 2, 2022 |
0.1.0 | Jul 30, 2022 |
#1758 in Parser implementations
18KB
193 lines
ircparser
An IRC (RFC1459) parser and formatter, built in Rust.
ircparser
should work on basically any Rust version, but the earliest version checked in the CI is v1.31 (the first version with Rust 2018 support).
Setup
To use the latest stable version of ircparser
, add it to your Cargo.toml file like so:
[dependencies]
ircparser = "^0.2.1"
You can also use the latest development version by specifying the following:
[dependencies]
ircparser = { git = "https://github.com/parafoxia/ircparser" }
Usage
ircparser
currently only has one public function — parse
.
This function takes a line of an IRC message, and parses it into an easy-to-use Line
object.
use ircparser;
fn main() {
let msg = "@id=123;name=rick :nick!user@host.tmi.twitch.tv PRIVMSG #rickastley :Never gonna give you up!";
match ircparser::parse(msg) {
Ok(x) => {
let line = x;
assert_eq!(&line.tags["id"], "123");
if line.source.is_some() {
assert_eq!(line.source.unwrap(), ":nick!user@host.tmi.twitch.tv");
}
assert_eq!(line.command, "PRIVMSG");
assert_eq!(line.params[0], "#rickastley");
assert_eq!(line.params[1], "Never gonna give you up!");
}
Err(e) => {
println!("A parsing error occured: {e}");
return;
}
};
}
License
The ircparser
crate for Rust is licensed under the BSD 3-Clause License.