8000 GitHub - parafoxia/ircparser: An IRC (RFC1459) parser and formatter, built in Rust.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

parafoxia/ircparser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

About

An IRC (RFC1459) parser and formatter, built in Rust.

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages

0