diff --git a/tui/src/types.rs b/tui/src/types.rs index 3a06c5a..246b6b0 100644 --- a/tui/src/types.rs +++ b/tui/src/types.rs @@ -1,6 +1,8 @@ use serde::{Serialize,Deserialize}; +use std::net::Ipv4Addr; +use std::str::FromStr; -#[derive(Deserialize, Serialize)] +#[derive(Debug, Deserialize, Serialize)] pub struct Server { pub name: Option, pub domain: Option, @@ -17,8 +19,17 @@ pub struct Config { pub servers: Vec } -#[derive(Deserialize)] +#[derive(Debug, Deserialize)] pub struct Channel { pub ip: String, pub name: String, -} \ No newline at end of file +} + +impl Channel { + pub fn parts(&self) -> (Ipv4Addr, &str) { + // return the ip/name of the channel + let addr = Ipv4Addr::from_str(&self.ip).unwrap(); + + (addr, self.name.as_ref()) + } +}