irk 0.1.1

A lil (wip) IRC protocol library
Documentation
use serde::{Deserialize, Serialize};

pub mod de;
pub mod ser;

pub use de::Deserializer;
pub use ser::Serializer;

#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
#[serde(rename_all = "UPPERCASE")]
pub enum Command<'a> {
    Cap(Cap<'a>),
    Authenticate {
        mechanism: &'a str,
    },
    Pong {
        server: Option<&'a str>,
        token: &'a str,
    },
    Nick {
        nickname: &'a str,
    },
    User {
        username: &'a str,
        realname: &'a str,
    },
    Kick {
        channel: &'a str,
        users: Vec<&'a str>,
        reason: Option<&'a str>,
    },
    Topic {
        channel: &'a str,
        topic: Option<&'a str>,
    },
}

#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
pub enum Cap<'a> {
    Req { caps: &'a str },
    End,
}