polysig_protocol/
meetings.rs1use crate::UserId;
2use serde::{Deserialize, Serialize};
3use serde_json::Value;
4use std::collections::HashSet;
5
6pub type MeetingId = uuid::Uuid;
8
9#[derive(Debug, Serialize, Deserialize, Eq, PartialEq)]
11#[serde(rename_all = "camelCase")]
12pub struct PublicKeys {
13 pub public_key: Vec<u8>,
15 pub verifying_key: Vec<u8>,
17 pub associated_data: Option<Value>,
19}
20
21#[derive(Debug, Serialize, Deserialize)]
23#[serde(rename_all = "camelCase")]
24pub enum MeetingRequest {
25 NewRoom {
27 owner_id: UserId,
29 slots: HashSet<UserId>,
31 },
32 JoinRoom {
34 meeting_id: MeetingId,
36 user_id: UserId,
38 data: PublicKeys,
40 },
41}
42
43#[derive(Debug, Serialize, Deserialize)]
45#[serde(rename_all = "camelCase")]
46pub enum MeetingResponse {
47 RoomCreated {
49 meeting_id: MeetingId,
51 owner_id: UserId,
53 },
54 RoomReady {
56 participants: Vec<(UserId, PublicKeys)>,
58 },
59}