Proof of Concept

This commit is contained in:
Philip (a-0) 2023-12-07 19:51:19 +01:00
commit e4fe60c06e
26 changed files with 4604 additions and 0 deletions

59
src/comm/messages/mod.rs Normal file
View file

@ -0,0 +1,59 @@
use serde::{Serialize, Deserialize};
use crate::state::types::{MessageId, ElementId, ElementContent};
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Message {
id: MessageId,
signature: MessageSignature,
content: MessageContent,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub enum MessageContent {
Hello {
peer_name: String,
},
CreateElement {
id: ElementId,
content: ElementContent,
},
SetElement {
id: ElementId,
content: ElementContent,
},
RemoveElement {
id: ElementId,
}
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct MessageSignature {}
impl Message {
pub fn new(content: MessageContent) -> Self {
Message {
id: MessageId::new(),
signature: MessageSignature { },
content: content,
}
}
pub fn content(&self) -> &MessageContent {
&self.content
}
pub fn id(&self) -> &MessageId {
&self.id
}
}
impl MessageSignature {
pub fn verify(&self, _content: &MessageContent) -> bool {
true
}
}