irc-command-micro
Early implementation of a parser for irc messages
use irc_command_micro::message::Message;
fn main() {
let message_bytes = vec![58, 65, 110, 111, 110, 32, 78, 65, 77, 69, 83];
let message = Message::parse(message_bytes, None).unwrap();
println!("{:?}", message);
// Message { source: Some("Anon"), command: NAMES, params: [] }
// Get list of names from server
let message_bytes = vec![58,65,110,111,110,32,78,73,67,75,32,68,97,118,101];
let message = Message::parse(message_bytes, None).unwrap();
println!("{:?}", message);
// Message { source: Some("Anon"), command: NICK, params: [[68, 97, 118, 101]] }
// Change nickname to Dave
let message_bytes = vec![58,65,110,111,110,32,78,73,67,75];
let message = Message::parse(message_bytes, None);
println!("{:?}", message);
// Err(MessageError { detail: NotEnoughParams })
// Here we haven't provided the mandatory parameter for NICK
let message_bytes = vec![58,65,110,111,110,32,78,105,99,107,32,68,97,118,101];
let message = Message::parse(message_bytes, None);
println!("{:?}", message);
// Err(MessageError { detail: InvalidCommand })
// Here we have given the incorrect cased command "Nick"
}