irc-command-micro 0.0.6

A library to parse irc messages and provide a stable representation in return
Documentation

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"
}