diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-05-07 14:45:24 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-05-07 14:45:24 +0200 |
commit | 602b64314e53db90923a32c93ebe95c12db69d4c (patch) | |
tree | 82acc6ec7cbab0e738ee66b9e16fe09cc4ea75f8 /src |
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..28f8823 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,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, + } + } +} |