diff options
Diffstat (limited to 'src/message/signalproxy/objects/identity.rs')
| -rw-r--r-- | src/message/signalproxy/objects/identity.rs | 119 |
1 files changed, 22 insertions, 97 deletions
diff --git a/src/message/signalproxy/objects/identity.rs b/src/message/signalproxy/objects/identity.rs index a710e5d..744e777 100644 --- a/src/message/signalproxy/objects/identity.rs +++ b/src/message/signalproxy/objects/identity.rs @@ -1,119 +1,44 @@ -use crate::primitive::{Variant, VariantMap}; +use libquassel_derive::Network; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Network)] +#[network(repr = "map")] pub struct Identity { + #[network(rename = "identityId")] identity_id: i32, + #[network(rename = "identityName")] identity_name: String, + #[network(rename = "realName")] real_name: String, + #[network(rename = "nicks", override_type = "StringList")] nicks: Vec<String>, + #[network(rename = "awayNick")] away_nick: String, + #[network(rename = "awayNickEnabled")] away_nick_enabled: bool, + #[network(rename = "awayReason")] away_reason: String, + #[network(rename = "awayReasonEnabled")] away_reason_enabled: bool, + #[network(rename = "autoAwayEnabled")] auto_away_enabled: bool, + #[network(rename = "autoAwayTime")] auto_away_time: i32, + #[network(rename = "autoAwayReason")] auto_away_reason: String, + #[network(rename = "autoAwayReasonEnabled")] auto_away_reason_enabled: bool, + #[network(rename = "detachAwayEnabled")] detach_away_enabled: bool, + #[network(rename = "detachAwayReason")] detach_away_reason: String, + #[network(rename = "detachAwayReasonEnabled")] detach_away_reason_enabled: bool, + #[network(rename = "ident")] ident: String, + #[network(rename = "kickReason")] kick_reason: String, + #[network(rename = "partReason")] part_reason: String, + #[network(rename = "quitReason")] quit_reason: String, } - -impl From<VariantMap> for Identity { - fn from(input: VariantMap) -> Self { - Identity { - identity_id: match_variant!(input.get("identityId").unwrap(), Variant::i32), - identity_name: match_variant!(input.get("identityName").unwrap(), Variant::String), - real_name: match_variant!(input.get("realName").unwrap(), Variant::String), - nicks: match_variant!(input.get("nicks").unwrap(), Variant::StringList), - away_nick: match_variant!(input.get("awayNick").unwrap(), Variant::String), - away_nick_enabled: match_variant!(input.get("awayNickEnabled").unwrap(), Variant::bool), - away_reason: match_variant!(input.get("awayReason").unwrap(), Variant::String), - away_reason_enabled: match_variant!( - input.get("awayReasonEnabled").unwrap(), - Variant::bool - ), - auto_away_enabled: match_variant!(input.get("autoAwayEnabled").unwrap(), Variant::bool), - auto_away_time: match_variant!(input.get("autoAwayTime").unwrap(), Variant::i32), - auto_away_reason: match_variant!(input.get("autoAwayReason").unwrap(), Variant::String), - auto_away_reason_enabled: match_variant!( - input.get("autoAwayReasonEnabled").unwrap(), - Variant::bool - ), - detach_away_enabled: match_variant!( - input.get("detachAwayEnabled").unwrap(), - Variant::bool - ), - detach_away_reason: match_variant!( - input.get("detachAwayReason").unwrap(), - Variant::String - ), - detach_away_reason_enabled: match_variant!( - input.get("detachAwayReasonEnabled").unwrap(), - Variant::bool - ), - ident: match_variant!(input.get("ident").unwrap(), Variant::String), - kick_reason: match_variant!(input.get("kickReason").unwrap(), Variant::String), - part_reason: match_variant!(input.get("partReason").unwrap(), Variant::String), - quit_reason: match_variant!(input.get("quitReason").unwrap(), Variant::String), - } - } -} - -impl Into<std::collections::HashMap<String, Variant>> for Identity { - fn into(self) -> VariantMap { - let mut res = VariantMap::with_capacity(19); - - res.insert("identityId".to_string(), Variant::i32(self.identity_id)); - res.insert( - "identityName".to_string(), - Variant::String(self.identity_name), - ); - res.insert("realName".to_string(), Variant::String(self.real_name)); - res.insert("nicks".to_string(), Variant::StringList(self.nicks)); - res.insert("awayNick".to_string(), Variant::String(self.away_nick)); - res.insert( - "awayNickEnabled".to_string(), - Variant::bool(self.away_nick_enabled), - ); - res.insert("awayReason".to_string(), Variant::String(self.away_reason)); - res.insert( - "awayReasonEnabled".to_string(), - Variant::bool(self.away_reason_enabled), - ); - res.insert( - "autoAwayEnabled".to_string(), - Variant::bool(self.auto_away_enabled), - ); - res.insert( - "autoAwayTime".to_string(), - Variant::i32(self.auto_away_time), - ); - res.insert( - "autoAwayReason".to_string(), - Variant::String(self.auto_away_reason), - ); - res.insert( - "detachAwayEnabled".to_string(), - Variant::bool(self.detach_away_enabled), - ); - res.insert( - "detachAwayReason".to_string(), - Variant::String(self.detach_away_reason), - ); - res.insert( - "detachAwayReasonEnabled".to_string(), - Variant::bool(self.detach_away_reason_enabled), - ); - res.insert("ident".to_string(), Variant::String(self.ident)); - res.insert("kickReason".to_string(), Variant::String(self.kick_reason)); - res.insert("partReason".to_string(), Variant::String(self.part_reason)); - res.insert("quitReason".to_string(), Variant::String(self.quit_reason)); - - res - } -} |
