#irc #parse #rfc #rfc1459 #parser

ircparser

一个基于 Rust 的 IRC (RFC1459) 解析器和格式化工具

3 个不稳定版本

0.2.1 2022 年 8 月 2 日
0.2.0 2022 年 8 月 2 日
0.1.0 2022 年 7 月 30 日

#1758 in 解析实现

BSD-3-Clause

18KB
193

ircparser

一个基于 Rust 的 IRC (RFC1459) 解析器和格式化工具。

ircparser 应该在几乎任何 Rust 版本上都能工作,但是在 CI 中检查的最早版本是 v1.31(第一个支持 Rust 2018 的版本)。

设置

要使用 ircparser 的最新稳定版本,将其添加到您的 Cargo.toml 文件中,如下所示

[dependencies]
ircparser = "^0.2.1"

您也可以通过指定以下内容使用最新开发版本

[dependencies]
ircparser = { git = "https://github.com/parafoxia/ircparser" }

使用方法

ircparser 目前只有一个公共函数 — parse。此函数接受一条 IRC 消息的行,并将其解析为易于使用的 Line 对象。

use ircparser;

fn main() {
    let msg = "@id=123;name=rick :[email protected] 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(), ":[email protected]");
            }
            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;
        }
    };
}

许可

Rust 的 ircparser crate 采用 BSD 3-Clause 许可证

无运行时依赖