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 解析器实现
235 每月下载量
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
致谢
- IRC消息规范: https://modern.ircdocs.horse
- IRC消息标签规范: https://ircv3.net/specs/extensions/message-tags.html
- IRC格式规范: https://modern.ircdocs.horse/formatting
lib.rs
:
Const IRC消息解析器
一个crate,允许您将字节数组切片解析为整个IrcMsg
或解析为构成IrcMsg
的各个部分。它还允许您提取消息的任何部分。
这是一个#![no_std]
crate,不要求使用alloc,并且没有依赖。
动机
我想看看在const上下文中能写多少IRC消息解析器。所有公共和私有函数都是const。我甚至能够让所有测试函数也是const,尽管这使代码变得更冗长。唯一例外的是Display impls,因为特性上的函数目前还不允许是const(点击此处查看详细信息)。我也不知道如何以const方式测试Display impls以覆盖代码。欢迎提出建议。
用法
确保您从网络中获取一条消息作为字节数组的切片。将这个单个切片输入解析器,不要包含尾随的回车和换行符,以创建一个IrcMsg
。使用提供的方法来提取IRC客户端、服务器或机器人所需的信息。