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
|
use std::net::{Ipv4Addr, Ipv6Addr};
use ipnet::Ipv6Net;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct Config {
pub serv: Ipv4Addr,
pub tn64: Ipv6Addr,
pub rt64: Ipv6Addr,
pub rt48: Ipv6Addr,
pub updt: String,
}
#[derive(Clone, Debug)]
pub struct UsableConfig {
pub serv: Ipv4Addr,
pub tn64: Ipv6Net,
pub rt64: Ipv6Net,
pub rt48: Ipv6Net,
pub updt: String,
}
impl From<Config> for UsableConfig {
fn from(config: Config) -> Self {
Self {
serv: config.serv,
tn64: Ipv6Net::new(config.tn64, 64).unwrap(),
rt64: Ipv6Net::new(config.rt64, 64).unwrap(),
rt48: Ipv6Net::new(config.rt48, 48).unwrap(),
updt: config.updt,
}
}
}
|