plankircd/src/user.rs
2018-06-20 16:38:12 +02:00

47 lines
1,014 B
Rust

use std::net::SocketAddr;
#[derive(Debug, Clone)]
pub struct User {
pub nickname: String,
pub username: String,
pub hostname: String,
pub realname: String,
pub address: SocketAddr,
nick_set: bool,
user_set: bool,
}
impl User {
pub fn new(addr: SocketAddr) -> User {
User {
nickname: String::new(),
username: String::new(),
hostname: String::new(),
realname: String::new(),
address: addr,
nick_set: false,
user_set: false,
}
}
pub fn set_nick(&mut self, nick: &str) {
self.nickname = nick.to_string();
self.nick_set = true;
}
pub fn set_user(&mut self, user: &str, host: &str, real: &str) {
self.username = user.to_string();
self.hostname = host.to_string();
self.realname = real.to_string();
self.user_set = true;
}
pub fn to_string(&self) -> String {
format!("{}!{}@{}", self.nickname, self.username, self.hostname)
}
pub fn is_registered(&self) -> bool {
self.nick_set && self.user_set
}
}