aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy
diff options
context:
space:
mode:
Diffstat (limited to 'src/message/signalproxy')
-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