diff options
| author | Max Audron <me@audron.dev> | 2026-02-22 14:06:16 +0100 |
|---|---|---|
| committer | Max Audron <me@audron.dev> | 2026-02-22 14:06:16 +0100 |
| commit | 024eb3df4a0786a92033baea123aa779998cdc28 (patch) | |
| tree | 412670a982455cb3351c199b7df21b0b22f3a36e /src/message/signalproxy/objects/networkinfo.rs | |
| parent | Syncable trait error handling (diff) | |
NetworkList and signalproxy objects error handling
Diffstat (limited to 'src/message/signalproxy/objects/networkinfo.rs')
| -rw-r--r-- | src/message/signalproxy/objects/networkinfo.rs | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/message/signalproxy/objects/networkinfo.rs b/src/message/signalproxy/objects/networkinfo.rs index ba944e8..bc08989 100644 --- a/src/message/signalproxy/objects/networkinfo.rs +++ b/src/message/signalproxy/objects/networkinfo.rs @@ -1,13 +1,12 @@ use crate::{ - message::{signalproxy::translation::NetworkMap, Class, Syncable}, + message::{objects::network::NetworkServer, signalproxy::translation::NetworkMap, Class, Syncable}, primitive::{IdentityId, NetworkId, StringList, VariantMap}, serialize::{Deserialize, Serialize, UserType}, + Result, }; use libquassel_derive::{NetworkList, NetworkMap, Setters}; -use crate::message::objects::network::NetworkServer; - #[derive(Default, Debug, Clone, PartialEq, NetworkList, NetworkMap, Setters)] pub struct NetworkInfo { #[network(rename = "networkName")] @@ -77,13 +76,13 @@ impl UserType for NetworkInfo { } impl Serialize for NetworkInfo { - fn serialize(&self) -> Result<Vec<u8>, crate::ProtocolError> { + fn serialize(&self) -> Result<Vec<u8>> { self.to_network_map().serialize() } } impl Deserialize for NetworkInfo { - fn parse(b: &[u8]) -> Result<(usize, Self), crate::ProtocolError> + fn parse(b: &[u8]) -> Result<(usize, Self)> where Self: std::marker::Sized, { @@ -93,16 +92,18 @@ impl Deserialize for NetworkInfo { } impl NetworkInfo { - pub fn set_server_list(&mut self, servers: Vec<NetworkServer>) { + pub fn set_server_list(&mut self, servers: Vec<NetworkServer>) -> Result<()> { #[cfg(feature = "server")] { use crate::message::NetworkMap; use libquassel_derive::sync; - sync!("setServerList", [Vec::<NetworkServer>::to_network_map(&servers)]); + sync!("setServerList", [Vec::<NetworkServer>::to_network_map(&servers)])?; } self.server_list = servers; + + Ok(()) } } @@ -204,20 +205,23 @@ mod tests { #[test] fn networkinfo_to_network() { - assert_eq!(get_runtime().to_network_list(), get_network()); - assert_eq!(get_runtime().to_network_list(), get_network()); + assert_eq!(get_runtime().to_network_list().unwrap(), get_network()); + assert_eq!(get_runtime().to_network_list().unwrap(), get_network()); } #[test] fn networkinfo_from_network() { - assert_eq!(NetworkInfo::from_network_list(&mut get_network()), get_runtime()); + assert_eq!( + NetworkInfo::from_network_list(&mut get_network()).unwrap(), + get_runtime() + ); // Test serialization without given network id let mut network = get_network(); network.remove(20); network.remove(20); - let left = NetworkInfo::from_network_list(&mut network); + let left = NetworkInfo::from_network_list(&mut network).unwrap(); assert_eq!(left.network_id, NetworkId(0)); } } |
