use std::fmt::{Display, Formatter}; use crate::parameter::{parameter_find, ParameterList}; #[derive(Debug)] pub struct Client { pub cid: i32, pub clid: i32, pub client_database_id: i32, pub client_nickname: String, pub client_type: i32, } impl Display for Client { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { write!(f, "{} ({})", self.client_nickname, self.clid) } } impl From<ParameterList> for Client { fn from(value: ParameterList) -> Self { Client { cid: parameter_find(&value, "cid") .unwrap_or_default() .to_i32(-1), clid: parameter_find(&value, "clid") .unwrap_or_default() .to_i32(-1), client_database_id: parameter_find(&value, "client_database_id") .unwrap_or_default() .to_i32(-1), client_nickname: parameter_find(&value, "client_nickname") .unwrap_or_default() .value, client_type: parameter_find(&value, "channel_topic") .unwrap_or_default() .to_i32(0), } } }