40 lines
No EOL
1.1 KiB
Rust
40 lines
No EOL
1.1 KiB
Rust
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),
|
|
}
|
|
}
|
|
} |