Fix and simplify packets

This commit is contained in:
Joscha 2022-02-11 22:11:20 +01:00
parent 7458eac931
commit 0e6acdbff4
4 changed files with 173 additions and 24 deletions

View file

@ -1,10 +1,10 @@
use serde::{Deserialize, Serialize};
use crate::{ Identity, MessageId};
use crate::{Identity, MessageId};
#[derive(Debug, Deserialize, Serialize)]
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Message {
pub pred: Option<MessageId>,
pub pred: MessageId,
pub parent: Option<MessageId>,
pub identity: Identity,
pub nick: String,
@ -13,10 +13,7 @@ pub struct Message {
impl Message {
pub fn id(&self) -> MessageId {
let pred = match self.pred {
Some(id) => format!("{id}"),
None => "none".to_string(),
};
let pred = self.pred;
let parent = match self.parent {
Some(id) => format!("{id}"),
None => "none".to_string(),

View file

@ -29,14 +29,13 @@ pub struct NickCmd {
#[derive(Debug, Deserialize, Serialize)]
#[serde(tag = "type")]
pub enum NickRpl {
Success { you: User },
Success,
NickTooLong,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct SendCmd {
pub parent: Option<MessageId>,
pub nick: Option<String>,
pub content: String,
}
@ -49,32 +48,32 @@ pub enum SendRpl {
}
#[derive(Debug, Deserialize, Serialize)]
pub struct WhoCmd;
pub struct WhoCmd {}
#[derive(Debug, Deserialize, Serialize)]
pub struct WhoRpl {
you: User,
others: Vec<User>,
pub you: User,
pub others: Vec<User>,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct JoinNtf {
user: User,
pub user: User,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct NickNtf {
user: User,
pub user: User,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct PartNtf {
user: User,
pub user: User,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct SendNtf {
message: Message,
pub message: Message,
}
// Create a Cmd enum for all commands, a Rpl enum for all replies and a Ntf enum

View file

@ -2,9 +2,9 @@ use serde::{Deserialize, Serialize};
use crate::{Identity, SessionId};
#[derive(Debug, Deserialize, Serialize)]
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct User {
nick: String,
identity: Identity,
sid: SessionId,
pub nick: String,
pub identity: Identity,
pub sid: SessionId,
}