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
|
use libquassel_derive::{NetworkList, NetworkMap};
use crate::message::Syncable;
#[allow(unused_imports)]
use crate::primitive::Variant;
#[derive(Debug, Clone, PartialEq, NetworkList, NetworkMap)]
pub struct CertManager {
#[network(rename = "sslKey", variant = "ByteArray")]
pub ssl_key: String,
#[network(rename = "sslCert", variant = "ByteArray")]
pub ssl_cert: String,
}
impl CertManager {
pub fn set_ssl_cert(&mut self, cert: String) {
#[cfg(feature = "server")]
self.send_sync("setSslCert", vec![Variant::ByteArray(cert.clone())]);
self.ssl_cert = cert;
}
pub fn set_ssl_key(&mut self, key: String) {
#[cfg(feature = "server")]
self.send_sync("setSslKey", vec![Variant::ByteArray(key.clone())]);
self.ssl_key = key;
}
}
#[cfg(feature = "client")]
impl crate::message::StatefulSyncableClient for CertManager {
fn sync_custom(&mut self, mut msg: crate::message::SyncMessage)
where
Self: Sized,
{
match msg.slot_name.as_str() {
"setSslCert" => self.set_ssl_cert(get_param!(msg)),
"setSslKey" => self.set_ssl_key(get_param!(msg)),
_ => (),
}
}
}
#[cfg(feature = "server")]
impl crate::message::StatefulSyncableServer for CertManager {}
impl Syncable for CertManager {
const CLASS: &'static str = "CertManager";
}
|