diff options
Diffstat (limited to 'client-native-lib/src/protocol.rs')
-rw-r--r-- | client-native-lib/src/protocol.rs | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/client-native-lib/src/protocol.rs b/client-native-lib/src/protocol.rs index 6b2bf5d..9573f51 100644 --- a/client-native-lib/src/protocol.rs +++ b/client-native-lib/src/protocol.rs @@ -4,9 +4,9 @@ Copyright (C) 2022 metamuffin <metamuffin@disroot.org> */ use serde::{Deserialize, Serialize}; -use webrtc::{ - ice_transport::ice_candidate::RTCIceCandidateInit, peer_connection::sdp::sdp_type::RTCSdpType, -}; +use webrtc::ice_transport::ice_candidate::RTCIceCandidateInit; + +pub type Sdp = String; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] @@ -34,15 +34,32 @@ pub struct RelayMessageWrapper { } #[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] pub enum RelayMessage { - Offer(RTCSessionDescriptionInit), - Answer(RTCSessionDescriptionInit), + Chat(ChatMesssage), + Identify { username: String }, + + Provide(ProvideInfo), + Request { id: String }, + ProvideStop { id: String }, + RequestStop { id: String }, + + Offer(Sdp), + Answer(Sdp), IceCandidate(RTCIceCandidateInit), } #[derive(Debug, Clone, Serialize, Deserialize)] -pub struct RTCSessionDescriptionInit { - #[serde(rename = "type")] - pub ty: RTCSdpType, - pub sdp: String, +#[serde(rename_all = "snake_case")] +pub enum ChatMesssage { + Text(String), + Image(String), +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ProvideInfo { + id: String, + kind: String, // TODO actually enum + label: Option<String>, + size: Option<usize>, } |