#irc #parse #rfc1459 #rfc #message-parser #parser

ircparser-vanten

一个基于 Rust 的 IRC (RFC1459) 解析器和格式化工具。 (由 vanten-s 衍生)

1 个不稳定版本

0.2.1 2023 年 10 月 21 日

#2505解析器实现


用于 e2e-irc

BSD-3-Clause

18KB
196

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 库采用 BSD 3-Clause 许可

无运行时依赖