aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2025-02-26 17:20:15 +0100
committerMax Audron <audron@cocaine.farm>2025-02-26 17:20:15 +0100
commitbb861cb828dedaae880d1f0cea759d79020f6c90 (patch)
tree0ac14b0a4ac2c4d0798621f7182fec5d435c1be0 /src/message/signalproxy/objects
parentenable transparent repr for msgid and bufferid (diff)
add MsgId and BufferId to objects where needed
some objects where still handling BufferId or MsgId as their raw types which lead to errors now that the Types are properly parsed in the varinats
Diffstat (limited to 'src/message/signalproxy/objects')
-rw-r--r--src/message/signalproxy/objects/buffersyncer.rs135
-rw-r--r--src/message/signalproxy/objects/bufferviewconfig.rs116
2 files changed, 114 insertions, 137 deletions
diff --git a/src/message/signalproxy/objects/buffersyncer.rs b/src/message/signalproxy/objects/buffersyncer.rs
index f085423..b2e12c4 100644
--- a/src/message/signalproxy/objects/buffersyncer.rs
+++ b/src/message/signalproxy/objects/buffersyncer.rs
@@ -1,8 +1,8 @@
use std::collections::HashMap;
use crate::{
- message::{Syncable, Class},
- primitive::MessageType,
+ message::{Class, Syncable},
+ primitive::{BufferId, MessageType, MsgId},
};
use libquassel_derive::{sync, NetworkList, NetworkMap};
@@ -10,13 +10,13 @@ use libquassel_derive::{sync, NetworkList, NetworkMap};
#[derive(Default, Debug, Clone, PartialEq, NetworkList, NetworkMap)]
pub struct BufferSyncer {
#[network(rename = "Activities", network = "list", variant = "VariantList")]
- pub activities: HashMap<i32, MessageType>,
+ pub activities: HashMap<BufferId, MessageType>,
#[network(rename = "HighlightCounts", network = "list", variant = "VariantList")]
- pub highlight_counts: HashMap<i32, i32>,
+ pub highlight_counts: HashMap<BufferId, i32>,
#[network(rename = "LastSeenMsg", network = "list", variant = "VariantList")]
- pub last_seen_msg: HashMap<i32, i64>,
+ pub last_seen_msg: HashMap<BufferId, MsgId>,
#[network(rename = "MarkerLines", network = "list", variant = "VariantList")]
- pub marker_line: HashMap<i32, i64>,
+ pub marker_line: HashMap<BufferId, MsgId>,
}
impl BufferSyncer {
@@ -50,7 +50,7 @@ impl BufferSyncer {
// // S->C calls
- pub fn mark_buffer_as_read(&mut self, id: i32) {
+ pub fn mark_buffer_as_read(&mut self, id: BufferId) {
self.set_buffer_activity(id, MessageType::NONE);
self.set_highlight_count(id, 0);
@@ -58,7 +58,7 @@ impl BufferSyncer {
sync!("markBufferAsRead", [id]);
}
- pub fn merge_buffers_permanently(&mut self, target: i32, source: i32) {
+ pub fn merge_buffers_permanently(&mut self, target: BufferId, source: BufferId) {
if let Some(activities) = self.activities.remove(&source) {
*self.activities.entry(target).or_insert(MessageType::NONE) |= activities;
}
@@ -86,7 +86,7 @@ impl BufferSyncer {
}
// TODO remove buffer from bufferviews
- pub fn remove_buffer(&mut self, id: i32) {
+ pub fn remove_buffer(&mut self, id: BufferId) {
self.activities.remove(&id);
self.highlight_counts.remove(&id);
self.last_seen_msg.remove(&id);
@@ -104,28 +104,28 @@ impl BufferSyncer {
sync!("renameBuffer", [id, name]);
}
- pub fn set_buffer_activity(&mut self, id: i32, activity: MessageType) {
+ pub fn set_buffer_activity(&mut self, id: BufferId, activity: MessageType) {
*self.activities.entry(id).or_insert(MessageType::NONE) = activity;
#[cfg(feature = "server")]
sync!("setBufferActivity", [id, activity.bits()]);
}
- pub fn set_highlight_count(&mut self, id: i32, count: i32) {
+ pub fn set_highlight_count(&mut self, id: BufferId, count: i32) {
*self.highlight_counts.entry(id).or_default() = count;
#[cfg(feature = "server")]
sync!("setHighlightCount", [id, count]);
}
- pub fn set_last_seen_msg(&mut self, id: i32, msg_id: i64) {
+ pub fn set_last_seen_msg(&mut self, id: BufferId, msg_id: MsgId) {
*self.last_seen_msg.entry(id).or_default() = msg_id;
#[cfg(feature = "server")]
sync!("setHighlightCount", [id, msg_id]);
}
- pub fn set_marker_line(&mut self, id: i32, msg_id: i64) {
+ pub fn set_marker_line(&mut self, id: BufferId, msg_id: MsgId) {
*self.marker_line.entry(id).or_default() = msg_id;
#[cfg(feature = "server")]
@@ -141,9 +141,7 @@ impl crate::message::StatefulSyncableClient for BufferSyncer {
{
match msg.slot_name.as_str() {
"markBufferAsRead" => self.mark_buffer_as_read(get_param!(msg)),
- "mergeBuffersPermanently" => {
- self.merge_buffers_permanently(get_param!(msg), get_param!(msg))
- }
+ "mergeBuffersPermanently" => self.merge_buffers_permanently(get_param!(msg), get_param!(msg)),
"removeBuffer" => self.remove_buffer(get_param!(msg)),
"renameBuffer" => self.rename_buffer(get_param!(msg), get_param!(msg)),
"setBufferActivity" => self.set_buffer_activity(
@@ -194,55 +192,55 @@ mod tests {
vec![
Variant::ByteArray(s!("Activities")),
Variant::VariantList(vec![
- Variant::i32(1),
+ Variant::BufferId(BufferId(1)),
Variant::i32(0),
- Variant::i32(2),
+ Variant::BufferId(BufferId(2)),
Variant::i32(0),
- Variant::i32(3),
+ Variant::BufferId(BufferId(3)),
Variant::i32(0),
- Variant::i32(4),
+ Variant::BufferId(BufferId(4)),
Variant::i32(0),
- Variant::i32(5),
+ Variant::BufferId(BufferId(5)),
Variant::i32(0),
]),
Variant::ByteArray(s!("HighlightCounts")),
Variant::VariantList(vec![
- Variant::i32(1),
+ Variant::BufferId(BufferId(1)),
Variant::i32(0),
- Variant::i32(2),
+ Variant::BufferId(BufferId(2)),
Variant::i32(0),
- Variant::i32(3),
+ Variant::BufferId(BufferId(3)),
Variant::i32(0),
- Variant::i32(4),
+ Variant::BufferId(BufferId(4)),
Variant::i32(0),
- Variant::i32(5),
+ Variant::BufferId(BufferId(5)),
Variant::i32(0),
]),
Variant::ByteArray(s!("LastSeenMsg")),
Variant::VariantList(vec![
- Variant::i32(1),
- Variant::i64(2185),
- Variant::i32(2),
- Variant::i64(2188),
- Variant::i32(3),
- Variant::i64(860),
- Variant::i32(4),
- Variant::i64(2183),
- Variant::i32(5),
- Variant::i64(2180),
+ Variant::BufferId(BufferId(1)),
+ Variant::MsgId(MsgId(2185)),
+ Variant::BufferId(BufferId(2)),
+ Variant::MsgId(MsgId(2188)),
+ Variant::BufferId(BufferId(3)),
+ Variant::MsgId(MsgId(860)),
+ Variant::BufferId(BufferId(4)),
+ Variant::MsgId(MsgId(2183)),
+ Variant::BufferId(BufferId(5)),
+ Variant::MsgId(MsgId(2180)),
]),
Variant::ByteArray(s!("MarkerLines")),
Variant::VariantList(vec![
- Variant::i32(1),
- Variant::i64(2185),
- Variant::i32(2),
- Variant::i64(2188),
- Variant::i32(3),
- Variant::i64(860),
- Variant::i32(4),
- Variant::i64(1527),
- Variant::i32(5),
- Variant::i64(2180),
+ Variant::BufferId(BufferId(1)),
+ Variant::MsgId(MsgId(2185)),
+ Variant::BufferId(BufferId(2)),
+ Variant::MsgId(MsgId(2188)),
+ Variant::BufferId(BufferId(3)),
+ Variant::MsgId(MsgId(860)),
+ Variant::BufferId(BufferId(4)),
+ Variant::MsgId(MsgId(1527)),
+ Variant::BufferId(BufferId(5)),
+ Variant::MsgId(MsgId(2180)),
]),
]
}
@@ -250,32 +248,32 @@ mod tests {
fn get_runtime() -> BufferSyncer {
BufferSyncer {
activities: map! {
- 1 => MessageType::NONE,
- 2 => MessageType::NONE,
- 3 => MessageType::NONE,
- 4 => MessageType::NONE,
- 5 => MessageType::NONE,
+ BufferId(1) => MessageType::NONE,
+ BufferId(2) => MessageType::NONE,
+ BufferId(3) => MessageType::NONE,
+ BufferId(4) => MessageType::NONE,
+ BufferId(5) => MessageType::NONE,
},
highlight_counts: map! {
- 1 => 0,
- 2 => 0,
- 3 => 0,
- 4 => 0,
- 5 => 0,
+ BufferId(1) => 0,
+ BufferId(2) => 0,
+ BufferId(3) => 0,
+ BufferId(4) => 0,
+ BufferId(5) => 0,
},
last_seen_msg: map! {
- 1 => 2185,
- 2 => 2188,
- 3 => 860,
- 4 => 2183,
- 5 => 2180,
+ BufferId(1) => MsgId(2185),
+ BufferId(2) => MsgId(2188),
+ BufferId(3) => MsgId(860),
+ BufferId(4) => MsgId(2183),
+ BufferId(5) => MsgId(2180),
},
marker_line: map! {
- 1 => 2185,
- 2 => 2188,
- 3 => 860,
- 4 => 1527,
- 5 => 2180,
+ BufferId(1) => MsgId(2185),
+ BufferId(2) => MsgId(2188),
+ BufferId(3) => MsgId(860),
+ BufferId(4) => MsgId(1527),
+ BufferId(5) => MsgId(2180),
},
}
}
@@ -288,9 +286,6 @@ mod tests {
#[test]
fn buffersyncer_from_network() {
- assert_eq!(
- BufferSyncer::from_network_list(&mut get_network()),
- get_runtime()
- )
+ assert_eq!(BufferSyncer::from_network_list(&mut get_network()), get_runtime())
}
}
diff --git a/src/message/signalproxy/objects/bufferviewconfig.rs b/src/message/signalproxy/objects/bufferviewconfig.rs
index bc60768..a31ec92 100644
--- a/src/message/signalproxy/objects/bufferviewconfig.rs
+++ b/src/message/signalproxy/objects/bufferviewconfig.rs
@@ -7,20 +7,20 @@ use crate::message::StatefulSyncableClient;
use crate::message::StatefulSyncableServer;
use crate::message::{Class, Syncable};
-use crate::primitive::VariantList;
+use crate::primitive::{BufferId, VariantList};
#[derive(Debug, Default, Clone, PartialEq, NetworkList, NetworkMap)]
pub struct BufferViewConfig {
#[network(rename = "BufferList", network = "map", variant = "VariantList")]
- pub buffers: Vec<i32>,
+ pub buffers: Vec<BufferId>,
#[network(rename = "RemovedBuffers", network = "map", variant = "VariantList")]
- pub removed_buffers: Vec<i32>,
+ pub removed_buffers: Vec<BufferId>,
#[network(
rename = "TemporarilyRemovedBuffers",
network = "map",
variant = "VariantList"
)]
- pub temporarily_removed_buffers: Vec<i32>,
+ pub temporarily_removed_buffers: Vec<BufferId>,
#[network(rename = "bufferViewId", default, skip)]
pub buffer_view_id: i32,
@@ -49,11 +49,11 @@ pub struct BufferViewConfig {
#[allow(dead_code)]
impl BufferViewConfig {
- pub fn request_add_buffer(&self, id: i32, pos: usize) {
+ pub fn request_add_buffer(&self, id: BufferId, pos: usize) {
sync!("requestAddBuffer", [id, (pos as i32)]);
}
- pub fn add_buffer(&mut self, id: i32, pos: usize) {
+ pub fn add_buffer(&mut self, id: BufferId, pos: usize) {
if !self.buffers.contains(&id) {
self.buffers.insert(pos, id)
}
@@ -62,11 +62,7 @@ impl BufferViewConfig {
self.removed_buffers.remove(old_pos);
}
- if let Some(old_pos) = self
- .temporarily_removed_buffers
- .iter()
- .position(|&x| x == id)
- {
+ if let Some(old_pos) = self.temporarily_removed_buffers.iter().position(|&x| x == id) {
self.temporarily_removed_buffers.remove(old_pos);
}
@@ -74,11 +70,11 @@ impl BufferViewConfig {
sync!("addBuffer", [id, (pos as i32)]);
}
- pub fn request_move_buffer(&self, id: i32, pos: usize) {
+ pub fn request_move_buffer(&self, id: BufferId, pos: usize) {
sync!("requestMoveBuffer", [id, (pos as i32)]);
}
- pub fn move_buffer(&mut self, id: i32, pos: usize) {
+ pub fn move_buffer(&mut self, id: BufferId, pos: usize) {
let old_pos = self.buffers.iter().position(|&x| x == id).unwrap();
self.buffers.remove(old_pos);
self.buffers.insert(pos, id);
@@ -87,11 +83,11 @@ impl BufferViewConfig {
sync!("moveBuffer", [id, (pos as i32)]);
}
- pub fn request_remove_buffer(&mut self, id: i32) {
+ pub fn request_remove_buffer(&mut self, id: BufferId) {
sync!("requestRemoveBuffer", [id]);
}
- pub fn remove_buffer(&mut self, id: i32) {
+ pub fn remove_buffer(&mut self, id: BufferId) {
if let Some(old_pos) = self.buffers.iter().position(|&x| x == id) {
self.buffers.remove(old_pos);
}
@@ -108,20 +104,16 @@ impl BufferViewConfig {
sync!("removeBuffer", [id]);
}
- pub fn request_remove_buffer_permanently(&mut self, id: i32) {
+ pub fn request_remove_buffer_permanently(&mut self, id: BufferId) {
sync!("requestRemoveBufferPermanently", [id]);
}
- pub fn remove_buffer_permanently(&mut self, id: i32) {
+ pub fn remove_buffer_permanently(&mut self, id: BufferId) {
if let Some(old_pos) = self.buffers.iter().position(|&x| x == id) {
self.buffers.remove(old_pos);
}
- if let Some(old_pos) = self
- .temporarily_removed_buffers
- .iter()
- .position(|&x| x == id)
- {
+ if let Some(old_pos) = self.temporarily_removed_buffers.iter().position(|&x| x == id) {
self.temporarily_removed_buffers.remove(old_pos);
}
@@ -181,27 +173,17 @@ impl StatefulSyncableServer for BufferViewConfig {
"setAddNewBuffersAutomatically" => {
self.add_new_buffers_automatically = msg.params.remove(0).try_into().unwrap()
}
- "setAllowedBufferTypes" => {
- self.allowed_buffer_types = msg.params.remove(0).try_into().unwrap()
- }
+ "setAllowedBufferTypes" => self.allowed_buffer_types = msg.params.remove(0).try_into().unwrap(),
"setBufferViewName" => self.buffer_view_name = msg.params.remove(0).try_into().unwrap(),
- "setDisableDecoration" => {
- self.disable_decoration = msg.params.remove(0).try_into().unwrap()
- }
- "setHideInactiveBuffers" => {
- self.hide_inactive_buffers = msg.params.remove(0).try_into().unwrap()
- }
+ "setDisableDecoration" => self.disable_decoration = msg.params.remove(0).try_into().unwrap(),
+ "setHideInactiveBuffers" => self.hide_inactive_buffers = msg.params.remove(0).try_into().unwrap(),
"setHideInactiveNetworks" => {
self.hide_inactive_networks = msg.params.remove(0).try_into().unwrap()
}
- "setMinimumActivity" => {
- self.minimum_activity = msg.params.remove(0).try_into().unwrap()
- }
+ "setMinimumActivity" => self.minimum_activity = msg.params.remove(0).try_into().unwrap(),
"setNetworkId" => self.network_id = msg.params.remove(0).try_into().unwrap(),
"setShowSearch" => self.show_search = msg.params.remove(0).try_into().unwrap(),
- "setSortAlphabetically" => {
- self.sort_alphabetically = msg.params.remove(0).try_into().unwrap()
- }
+ "setSortAlphabetically" => self.sort_alphabetically = msg.params.remove(0).try_into().unwrap(),
_ => (),
}
}
@@ -226,9 +208,9 @@ mod tests {
fn bufferviewconfig_sample() -> BufferViewConfig {
BufferViewConfig {
- buffers: vec![1, 2, 3],
- removed_buffers: vec![4, 5],
- temporarily_removed_buffers: vec![6, 7],
+ buffers: vec![1.into(), 2.into(), 3.into()],
+ removed_buffers: vec![4.into(), 5.into()],
+ temporarily_removed_buffers: vec![6.into(), 7.into()],
..Default::default()
}
}
@@ -237,17 +219,17 @@ mod tests {
fn bufferviewconfig_add_buffer() {
// Add existing buffer, no change
let mut buffer_view_config = bufferviewconfig_sample();
- buffer_view_config.add_buffer(1, 2);
+ buffer_view_config.add_buffer(1.into(), 2);
assert_eq!(bufferviewconfig_sample(), buffer_view_config);
// Add new buffer
let mut buffer_view_config = bufferviewconfig_sample();
- buffer_view_config.add_buffer(10, 1);
+ buffer_view_config.add_buffer(10.into(), 1);
assert_eq!(
BufferViewConfig {
- buffers: vec![1, 10, 2, 3],
- removed_buffers: vec![4, 5],
- temporarily_removed_buffers: vec![6, 7],
+ buffers: vec![1.into(), 10.into(), 2.into(), 3.into()],
+ removed_buffers: vec![4.into(), 5.into()],
+ temporarily_removed_buffers: vec![6.into(), 7.into()],
..Default::default()
},
buffer_view_config
@@ -255,17 +237,17 @@ mod tests {
// Add new buffer, remove from removed buffers
let mut buffer_view_config = BufferViewConfig {
- buffers: vec![1, 2, 3],
- removed_buffers: vec![4, 5, 10],
- temporarily_removed_buffers: vec![6, 7, 10],
+ buffers: vec![1.into(), 2.into(), 3.into()],
+ removed_buffers: vec![4.into(), 5.into(), 10.into()],
+ temporarily_removed_buffers: vec![6.into(), 7.into(), 10.into()],
..Default::default()
};
- buffer_view_config.add_buffer(10, 1);
+ buffer_view_config.add_buffer(10.into(), 1);
assert_eq!(
BufferViewConfig {
- buffers: vec![1, 10, 2, 3],
- removed_buffers: vec![4, 5],
- temporarily_removed_buffers: vec![6, 7],
+ buffers: vec![1.into(), 10.into(), 2.into(), 3.into()],
+ removed_buffers: vec![4.into(), 5.into()],
+ temporarily_removed_buffers: vec![6.into(), 7.into()],
..Default::default()
},
buffer_view_config
@@ -276,17 +258,17 @@ mod tests {
fn bufferviewconfig_remove_buffer() {
// Remove already removed buffer
let mut buffer_view_config = bufferviewconfig_sample();
- buffer_view_config.remove_buffer(6);
+ buffer_view_config.remove_buffer(6.into());
assert_eq!(bufferviewconfig_sample(), buffer_view_config);
// Remove buffer
let mut buffer_view_config = bufferviewconfig_sample();
- buffer_view_config.remove_buffer(1);
+ buffer_view_config.remove_buffer(1.into());
assert_eq!(
BufferViewConfig {
- buffers: vec![2, 3],
- removed_buffers: vec![4, 5],
- temporarily_removed_buffers: vec![6, 7, 1],
+ buffers: vec![2.into(), 3.into()],
+ removed_buffers: vec![4.into(), 5.into()],
+ temporarily_removed_buffers: vec![6.into(), 7.into(), 1.into()],
..Default::default()
},
buffer_view_config
@@ -297,17 +279,17 @@ mod tests {
fn bufferviewconfig_remove_buffer_permanently() {
// Remove already removed buffer
let mut buffer_view_config = bufferviewconfig_sample();
- buffer_view_config.remove_buffer_permanently(4);
+ buffer_view_config.remove_buffer_permanently(4.into());
assert_eq!(bufferviewconfig_sample(), buffer_view_config);
// Remove buffer
let mut buffer_view_config = bufferviewconfig_sample();
- buffer_view_config.remove_buffer_permanently(1);
+ buffer_view_config.remove_buffer_permanently(1.into());
assert_eq!(
BufferViewConfig {
- buffers: vec![2, 3],
- removed_buffers: vec![4, 5, 1],
- temporarily_removed_buffers: vec![6, 7],
+ buffers: vec![2.into(), 3.into()],
+ removed_buffers: vec![4.into(), 5.into(), 1.into()],
+ temporarily_removed_buffers: vec![6.into(), 7.into()],
..Default::default()
},
buffer_view_config
@@ -318,17 +300,17 @@ mod tests {
fn bufferviewconfig_move_buffer() {
// Do nothing
let mut buffer_view_config = bufferviewconfig_sample();
- buffer_view_config.move_buffer(1, 0);
+ buffer_view_config.move_buffer(1.into(), 0);
assert_eq!(bufferviewconfig_sample(), buffer_view_config);
// Move buffer
let mut buffer_view_config = bufferviewconfig_sample();
- buffer_view_config.move_buffer(1, 1);
+ buffer_view_config.move_buffer(1.into(), 1);
assert_eq!(
BufferViewConfig {
- buffers: vec![2, 1, 3],
- removed_buffers: vec![4, 5],
- temporarily_removed_buffers: vec![6, 7],
+ buffers: vec![2.into(), 1.into(), 3.into()],
+ removed_buffers: vec![4.into(), 5.into()],
+ temporarily_removed_buffers: vec![6.into(), 7.into()],
..Default::default()
},
buffer_view_config