mm1_multinode/remote_subnet/
config.rs

1use std::net::SocketAddr;
2
3#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)]
4#[serde(rename_all = "snake_case", tag = "protocol")]
5pub enum RemoteSubnetConfig {
6    Wip(ProtocolWip),
7}
8
9#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)]
10pub struct ProtocolWip {
11    pub(crate) codec: String,
12    pub(crate) link:  Link,
13    pub(crate) serde: SerdeFormat,
14    pub(crate) authc: Authc,
15}
16
17#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)]
18#[serde(rename_all = "snake_case")]
19pub(crate) struct Link {
20    pub(crate) bind: SocketAddr,
21    pub(crate) peer: SocketAddr,
22}
23
24#[derive(Debug, Clone, serde::Deserialize, serde::Serialize)]
25#[serde(rename_all = "snake_case")]
26pub(crate) enum Authc {
27    None,
28    SharedSecret(String),
29}
30
31#[derive(
32    Debug, Clone, Copy, serde::Deserialize, serde::Serialize, PartialEq, PartialOrd, Eq, Ord, Hash,
33)]
34#[serde(rename_all = "snake_case")]
35pub(crate) enum SerdeFormat {
36    #[cfg(feature = "format-json")]
37    Json,
38    #[cfg(feature = "format-bincode")]
39    Bincode,
40    #[cfg(feature = "format-rmp")]
41    Rmp,
42}