This crate implements a simple irc message wrapper.
This project has 2 goals:
- Ease the access to fields of the message without requiring the user to handle offsets and other IRC related things.
- Minimize memory foodprint. For this goal the
Message
struct only owns theString
of the actual message. Any parts of the message and other structs only work on references of this string.
Therefore this project expects the strings passed to the struct constructors to be valid parts of the IRC standard.
As reference the RFC2812 and some extensions from IRCv3 are used.
Support
Current support (as of version '0.3.*'):
- Message: Create read-only Message from
String
or&str
and with a builderMessage::builder()
. - Tags: access through the indexing operator and iterating over all tags.
- Prefix: Read-only access + Builder.
- Parameters List: Read-only access, Iteration over elements, separate access to trailing parameter.
- Serde: Serialization in any format supported by serde.
Examples - for starters
Simple example with static string:
use Message;
let message = from;
assert_eq!;
While reading from standard input the Message::from
method has to be used.
use Message;
use ;
for line in stdin.lock.lines