mm1_node/config/
defaults.rs

1use mm1_address::address::Address;
2use mm1_address::subnet::{NetAddress, NetMask};
3
4use crate::config::{DefLocalSubnet, LocalSubnetKind, Mm1NodeConfig};
5
6const DEFAULT_LOCAL_SUBNET_ADDRESS_AUTO: NetAddress = NetAddress {
7    address: Address::from_u64(0xFFF80000_00000000),
8    mask:    NetMask::M_13,
9};
10const DEFAULT_LOCAL_SUBNET_ADDRESS_BIND: NetAddress = NetAddress {
11    address: Address::from_u64(0xFFF00000_00000000),
12    mask:    NetMask::M_13,
13};
14
15pub(super) fn local_subnets() -> Vec<DefLocalSubnet> {
16    vec![
17        DefLocalSubnet {
18            net:  DEFAULT_LOCAL_SUBNET_ADDRESS_AUTO,
19            kind: LocalSubnetKind::Auto,
20        },
21        DefLocalSubnet {
22            net:  DEFAULT_LOCAL_SUBNET_ADDRESS_BIND,
23            kind: LocalSubnetKind::Bind,
24        },
25    ]
26}
27
28impl Default for Mm1NodeConfig {
29    fn default() -> Self {
30        Self {
31            local_subnets: local_subnets(),
32            actor: Default::default(),
33            runtime: Default::default(),
34            #[cfg(feature = "multinode")]
35            inbound: Default::default(),
36            #[cfg(feature = "multinode")]
37            outbound: Default::default(),
38        }
39    }
40}
41
42#[cfg(test)]
43mod tests {
44    use crate::config::Mm1NodeConfig;
45
46    #[test]
47    fn default_mm1_node_config_is_valid() {
48        Mm1NodeConfig::default()
49            .validate()
50            .expect("default config is not valid");
51    }
52}