#message-parser #irc #parser #no-alloc #irc-client #networking #no-std

no-std const_irc_message_parser

一个无依赖、no_std、仅const的IRC消息协议解析器

9个版本 (破坏性更新)

0.7.1 2024年3月12日
0.7.0 2024年3月12日
0.6.0 2023年10月29日
0.5.0 2023年9月9日
0.1.1 2023年8月21日

#1165 in 解析器实现

Download history 27/week @ 2024-03-28 19/week @ 2024-04-04

235 每月下载量

ISC 许可证

125KB
2K SLoC

const_irc_message_parser

一个无依赖、no_std、仅const的IRC消息协议解析器。

动机

我想看看有多少的IRC消息解析器可以写成const环境下的形式。每个公共和私有函数都是const。我甚至能够将所有测试函数也写成const,尽管这会使代码更冗长。唯一的例外是Display实现,因为在Trait上的函数还不允许是const(《https://github.com/rust-lang/rust/issues/103265》)。我也不知道如何以const方式测试Display实现以覆盖代码。欢迎提出建议。

文档

文档可以在这里找到: https://docs.rs/const_irc_message_parser

致谢


lib.rs:

Const IRC消息解析器

一个crate,允许您将字节数组切片解析为整个IrcMsg或解析为构成IrcMsg的各个部分。它还允许您提取消息的任何部分。

这是一个#![no_std] crate,不要求使用alloc,并且没有依赖。

动机

我想看看在const上下文中能写多少IRC消息解析器。所有公共和私有函数都是const。我甚至能够让所有测试函数也是const,尽管这使代码变得更冗长。唯一例外的是Display impls,因为特性上的函数目前还不允许是const(点击此处查看详细信息)。我也不知道如何以const方式测试Display impls以覆盖代码。欢迎提出建议。

用法

确保您从网络中获取一条消息作为字节数组的切片。将这个单个切片输入解析器,不要包含尾随的回车和换行符,以创建一个IrcMsg。使用提供的方法来提取IRC客户端、服务器或机器人所需的信息。

无运行时依赖