bath_signal/
send_offer.rs1use super::*;
2
3#[derive(Serialize, Deserialize, Debug, Clone)]
4pub struct ResSendOffer {
5 pub error: Option<SendOfferError>,
6}
7
8#[derive(Serialize, Deserialize, Debug, Clone)]
9pub struct SendOffer {
10 pub user: UserId,
11 pub from: UserId,
12 pub offer: String,
13}
14
15#[derive(Serialize, Deserialize, Debug, Clone)]
16#[serde(tag = "type")]
17pub enum SendOfferError {
18 InvalidCallId,
19}
20
21impl CallState {
22 pub fn send_offer(&mut self, req: SendOffer) -> Result<(), SendOfferError> {
23 let mailbox = self
24 .user_mail
25 .get_mut(&req.user)
26 .ok_or(SendOfferError::InvalidCallId)?;
27 mailbox.push(UserMail {
28 ty: UserMailType::IncomingOffer,
29 data: req.offer,
30 from: req.from,
31 });
32 Ok(())
33 }
34}