Added client-related models

This commit is contained in:
DylanCa 2023-12-29 02:50:33 +01:00
parent 677adf9b5f
commit b89acbdd11
4 changed files with 58 additions and 0 deletions

View file

@ -0,0 +1,11 @@
pub enum Commands {
SetActivity
}
impl Commands {
pub fn as_string(&self) -> String {
match self {
Commands::SetActivity => "SET_ACTIVITY".into(),
}
}
}

View file

@ -0,0 +1,22 @@
use serde::Serialize;
use crate::models::activity::Activity;
#[derive(Serialize, Debug)]
#[serde(untagged)]
pub enum EventData {
Activity(Activity)
}
pub enum EventName {
Activity
}
impl EventName {
pub fn as_string(&self) -> String {
match self {
EventName::Activity => "activity".into(),
}
}
}

3
src/models/client/mod.rs Normal file
View file

@ -0,0 +1,3 @@
pub mod payload;
pub mod event;
pub mod commands;

View file

@ -0,0 +1,22 @@
use serde::Serialize;
use crate::models::client::event::{EventData, EventName};
pub enum OpCode {
HANDSHAKE,
MESSAGE,
}
#[derive(Serialize, Debug)]
pub struct Payload {
pub event_name: String,
pub event_data: EventData,
}
impl Payload {
pub fn new(event_name: EventName, event_data: EventData) -> Self {
Self {
event_name: event_name.as_string(),
event_data
}
}
}