host_extensions/protocol/
signal.rs1pub mod signal_type {
3 pub const OFFER: &str = "offer";
4 pub const ANSWER: &str = "answer";
5 pub const CANDIDATE: &str = "candidate";
6 pub const HANGUP: &str = "hangup";
7 pub const RING: &str = "ring";
8 pub const CONNECTED: &str = "connected";
9 pub const CLOSED: &str = "closed";
10 pub const REMOTE_TRACK: &str = "remoteTrack";
11 pub const RENEGOTIATE_OFFER: &str = "renegotiateOffer";
12 pub const RENEGOTIATE_ANSWER: &str = "renegotiateAnswer";
13}
14
15#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
17pub struct SignalPayload {
18 #[serde(rename = "type")]
19 pub signal_type: String,
20 pub data: String,
21}
22
23#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
25pub struct RingPayload {
26 #[serde(rename = "type")]
27 pub ring_type: String,
28 pub from: String,
29}
30
31impl SignalPayload {
32 pub fn new(signal_type: &str, data: impl Into<String>) -> Self {
33 Self {
34 signal_type: signal_type.to_string(),
35 data: data.into(),
36 }
37 }
38}
39
40impl RingPayload {
41 pub fn new(from: impl Into<String>) -> Self {
42 Self {
43 ring_type: signal_type::RING.to_string(),
44 from: from.into(),
45 }
46 }
47}