Lots of changes

Notable ones are that now every message has a field for the target
server, and that messages have an "optional" ID  in that they dont have it
from client -> server and they do have it from server -> client.
This commit is contained in:
2026-05-24 22:56:15 -07:00
parent a3f5470549
commit c2b7575ff4
5 changed files with 193 additions and 42 deletions
+20 -2
View File
@@ -1,7 +1,7 @@
use crate::RoomId;
use crate::client::ClientMessage;
use crate::state::StatePath;
use crate::User;
use crate::{User,ServerAddr};
use time::OffsetDateTime;
use serde::{Deserialize, Serialize};
@@ -16,6 +16,7 @@ pub struct MessageId(u64);
#[derive(Serialize,Deserialize,Clone,Debug)]
pub struct TaggedMessage {
// How do I return message IDs
pub message: ClientMessage,
#[serde(with="time::serde::timestamp")]
pub client_timestamp: OffsetDateTime,
@@ -23,7 +24,8 @@ pub struct TaggedMessage {
pub server_timestamp: OffsetDateTime,
#[serde(with = "serde_bytes")]
pub signature: Box<[u8]>,
pub user: User
pub user: User,
pub target: ServerAddr
}
impl TaggedMessage {
pub fn verify(&self) -> Result<bool,VerificationError> {
@@ -42,6 +44,22 @@ pub enum Relevance {
Post(User)
}
//#[derive(Serialize,Deserialize,Clone,Debug)]
//pub struct Message {
// pub body: String,
// pub room_id: RoomId,
// pub target: ServerAddr,
// pub message_id: MessageId,
// #[serde(with="time::serde::timestamp")]
// pub client_timestamp: OffsetDateTime,
// #[serde(with="time::serde::timestamp")]
// pub server_timestamp: OffsetDateTime,
// #[serde(with = "serde_bytes")]
// pub signature: Box<[u8]>,
// pub user: User,
//
//}
//#[derive(Serialize,Deserialize,Debug,Clone)]
//pub struct Message {
// body: String,