use distant_auth::msg::Authentication;
use serde::{Deserialize, Serialize};
use super::{ConnectionInfo, ConnectionList, ManagerAuthenticationId, ManagerChannelId, SemVer};
use crate::common::{ConnectionId, Destination, UntypedResponse};
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "snake_case", deny_unknown_fields, tag = "type")]
pub enum ManagerResponse {
Killed,
Error { description: String },
Version { version: SemVer },
Launched {
destination: Destination,
},
Connected { id: ConnectionId },
Authenticate {
id: ManagerAuthenticationId,
msg: Authentication,
},
Info(ConnectionInfo),
List(ConnectionList),
Channel {
id: ManagerChannelId,
response: UntypedResponse<'static>,
},
ChannelOpened {
id: ManagerChannelId,
},
ChannelClosed {
id: ManagerChannelId,
},
}
impl<T: std::error::Error> From<T> for ManagerResponse {
fn from(x: T) -> Self {
Self::Error {
description: x.to_string(),
}
}
}