rustybook-messenger 0.2.1

Messenger client for Rustybook
Documentation
use serde::{
    Deserialize,
    Serialize,
};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Event {
    Listening,
    Disconnect,
    Message(MessageEvent),
    Typing(TypingEvent),
    Presence(PresenceEvent),
    Error(EventError),
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MessageEvent {
    pub message_id: Option<String>,
    pub thread_id: String,
    pub sender_id: String,
    pub text: Option<String>,
    pub timestamp_ms: Option<i64>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TypingEvent {
    pub user_id: String,
    pub thread_id: Option<String>,
    pub is_typing: bool,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PresenceEvent {
    pub user_id: String,
    pub is_active: bool,
    pub last_active_ms: Option<i64>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EventError {
    pub kind: EventKind,
    pub message: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum EventKind {
    Parse,
    Transport,
    Unknown,
}