From a130eee7a71996f9ae50502c477a2c6494b78a83 Mon Sep 17 00:00:00 2001 From: Max Audron Date: Wed, 26 Feb 2025 22:52:16 +0100 Subject: implement NetworkId UserType --- src/message/signalproxy/objects/bufferviewconfig.rs | 4 ++-- src/message/signalproxy/objects/networkinfo.rs | 21 +++++++++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) (limited to 'src/message/signalproxy/objects') diff --git a/src/message/signalproxy/objects/bufferviewconfig.rs b/src/message/signalproxy/objects/bufferviewconfig.rs index a31ec92..8ca6b82 100644 --- a/src/message/signalproxy/objects/bufferviewconfig.rs +++ b/src/message/signalproxy/objects/bufferviewconfig.rs @@ -7,7 +7,7 @@ use crate::message::StatefulSyncableClient; use crate::message::StatefulSyncableServer; use crate::message::{Class, Syncable}; -use crate::primitive::{BufferId, VariantList}; +use crate::primitive::{BufferId, NetworkId, VariantList}; #[derive(Debug, Default, Clone, PartialEq, NetworkList, NetworkMap)] pub struct BufferViewConfig { @@ -27,7 +27,7 @@ pub struct BufferViewConfig { #[network(rename = "bufferViewName")] pub buffer_view_name: String, #[network(rename = "networkId")] - pub network_id: i32, + pub network_id: NetworkId, #[network(rename = "addNewBuffersAutomatically")] pub add_new_buffers_automatically: bool, #[network(rename = "sortAlphabetically")] diff --git a/src/message/signalproxy/objects/networkinfo.rs b/src/message/signalproxy/objects/networkinfo.rs index b3b2a4d..4cdf8d7 100644 --- a/src/message/signalproxy/objects/networkinfo.rs +++ b/src/message/signalproxy/objects/networkinfo.rs @@ -1,6 +1,6 @@ use crate::{ message::{Class, Syncable}, - primitive::{IdentityId, StringList}, + primitive::{IdentityId, NetworkId, StringList}, }; use libquassel_derive::{NetworkList, NetworkMap, Setters}; @@ -37,7 +37,8 @@ pub struct NetworkInfo { pub codec_for_decoding: String, // TODO add these type aliases or usertypes in variants - // pub network_id: NetworkId, + #[network(rename = "networkId", default)] + pub network_id: NetworkId, #[network(rename = "identityId")] pub identity_id: IdentityId, #[network(rename = "msgRateBurstSize")] @@ -119,6 +120,8 @@ mod tests { Variant::ByteArray(s!("")), Variant::ByteArray(s!("codecForDecoding")), Variant::ByteArray(s!("")), + Variant::ByteArray(s!("networkId")), + Variant::NetworkId(NetworkId(5)), Variant::ByteArray(s!("identityId")), Variant::IdentityId(IdentityId(0)), Variant::ByteArray(s!("msgRateBurstSize")), @@ -151,6 +154,7 @@ mod tests { fn get_runtime() -> NetworkInfo { NetworkInfo { identity_id: IdentityId(0), + network_id: NetworkId(5), network_name: s!("snoonet"), server_list: vec![], perform: vec![s!("")], @@ -179,11 +183,20 @@ 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(), 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()), 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); + assert_eq!(left.network_id, NetworkId(0)); } } -- cgit v1.2.3