Fix and simplify packets
This commit is contained in:
parent
7458eac931
commit
0e6acdbff4
4 changed files with 173 additions and 24 deletions
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue