use serde::{Deserialize, Serialize};
use signer_core::{SignerCrypted, SignerUser};
use crate::SignerSummary;
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)] #[serde(tag = "type", content = "data")]
pub enum ClientToTransferMessage {
JoinChannel {
channel_id: Option<String>,
user_info: SignerUser,
},
AcceptTransfer {
target_device_id: String,
encrypted_summary: SignerCrypted<SignerSummary>, },
TransferCompleted {
sender_device_id: String,
},
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)] #[serde(tag = "type", content = "data")]
pub enum TransferToClientMessage {
ChannelJoined {
channel_id: String,
devices: Vec<ChannelDevice>,
},
DeviceListUpdate {
devices: Vec<ChannelDevice>,
},
TransferStarted {
target_device_id: String,
},
ReceiveTransfer {
from_device_id: String,
encrypted_summary: SignerCrypted<SignerSummary>, },
TransferCompleted {
receiver_device_id: String,
},
ChannelClosed {
reason: String,
},
Error {
message: String,
},
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)] pub struct ChannelDevice {
pub device_id: String,
pub user_info: SignerUser,
}