1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
use super::{
ConnectionInfo, ConnectionList, ManagerAuthenticationId, ManagerCapabilities, ManagerChannelId,
};
use crate::common::{
authentication::msg::Authentication, ConnectionId, Destination, UntypedResponse,
};
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "snake_case", deny_unknown_fields, tag = "type")]
pub enum ManagerResponse {
Killed,
Error { description: String },
Capabilities { supported: ManagerCapabilities },
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(),
}
}
}