12个版本
0.1.4 | 2024年5月7日 |
---|---|
0.1.3 | 2024年3月16日 |
0.0.8 | 2024年3月2日 |
0.0.4 | 2024年2月29日 |
#1070 在 网络编程
1,242 每月下载量
用于 twitch_ircv3_parse
8KB
134 行
IRCv3解析
lib.rs
:
IRCv3解析
示例
use std::collections::HashMap;
use ircv3_parse::ircv3_parse;
let msg = "@badge-info=;badges=broadcaster/1;client-nonce=997dcf443c31e258c1d32a8da47b6936;color=#0000FF;display-name=abc;emotes=;first-msg=0;flags=0-6:S.7;id=eb24e920-8065-492a-8aea-266a00fc5126;mod=0;room-id=713936733;subscriber=0;tmi-sent-ts=1642786203573;turbo=0;user-id=713936733;user-type= :[email protected] PRIVMSG #xyz :HeyGuys\r\n";
let (tags, prefix, command, params) = ircv3_parse(msg);
let expeced_tags= HashMap::from([
("badge-info", ""),
("subscriber", "0"),
("id", "eb24e920-8065-492a-8aea-266a00fc5126"),
("user-id", "713936733"),
("emotes", ""),
("tmi-sent-ts", "1642786203573"),
("client-nonce", "997dcf443c31e258c1d32a8da47b6936"),
("mod", "0"),
("badges", "broadcaster/1"),
("room-id", "713936733"),
("flags", "0-6:S.7"),
("color", "#0000FF"),
("turbo", "0"),
("display-name", "abc"),
("first-msg", "0"),
("user-type", "")]);
assert_eq!(prefix.as_ref(), &Some(("abc", Some("[email protected]"))));
assert_eq!(command, "PRIVMSG");
assert_eq!(params.channel(), Some("#xyz"));
assert_eq!(params.message(), Some("HeyGuys"));
依赖项
~1MB
~19K SLoC