aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects/buffersyncer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/message/signalproxy/objects/buffersyncer.rs')
-rw-r--r--src/message/signalproxy/objects/buffersyncer.rs107
1 files changed, 66 insertions, 41 deletions
diff --git a/src/message/signalproxy/objects/buffersyncer.rs b/src/message/signalproxy/objects/buffersyncer.rs
index 22a435d..5e8b8e7 100644
--- a/src/message/signalproxy/objects/buffersyncer.rs
+++ b/src/message/signalproxy/objects/buffersyncer.rs
@@ -1,9 +1,9 @@
use std::collections::HashMap;
use crate::{
- error::ProtocolError,
message::{Class, Syncable},
primitive::{BufferId, MessageType, MsgId},
+ Result,
};
use libquassel_derive::{sync, NetworkList, NetworkMap};
@@ -21,45 +21,48 @@ pub struct BufferSyncer {
}
impl BufferSyncer {
- pub fn request_mark_buffer_as_read(&mut self, id: i32) {
- sync!("requestMarkBufferAsRead", [id]);
+ pub fn request_mark_buffer_as_read(&mut self, id: i32) -> Result<()> {
+ sync!("requestMarkBufferAsRead", [id])
}
- pub fn request_merge_buffers_permanently(&self, src_id: i32, target_id: i32) {
- sync!("requestMergeBuffersPermanently", [src_id, target_id]);
+ pub fn request_merge_buffers_permanently(&self, src_id: i32, target_id: i32) -> Result<()> {
+ sync!("requestMergeBuffersPermanently", [src_id, target_id])
}
- pub fn request_purge_buffer_ids(&self) {
- sync!("requestPurgeBufferIds", []);
+ pub fn request_purge_buffer_ids(&self) -> Result<()> {
+ sync!("requestPurgeBufferIds", [])
}
- pub fn request_remove_buffer(&self, id: i32) {
- sync!("requestRemoveBuffer", [id]);
+ pub fn request_remove_buffer(&self, id: i32) -> Result<()> {
+ sync!("requestRemoveBuffer", [id])
}
- pub fn request_rename_buffer(&self, id: i32) {
- sync!("requestRenameBuffer", [id]);
+ pub fn request_rename_buffer(&self, id: i32) -> Result<()> {
+ sync!("requestRenameBuffer", [id])
}
- pub fn request_set_last_seen_msg(&self, id: i32, msgid: i32) {
- sync!("requestSetLastSeenMsg", [id, msgid]);
+ pub fn request_set_last_seen_msg(&self, id: i32, msgid: i32) -> Result<()> {
+ sync!("requestSetLastSeenMsg", [id, msgid])
}
- pub fn request_set_marker_line(&self, id: i32, msgid: i32) {
- sync!("requestSetMarkerLine", [id, msgid]);
+ pub fn request_set_marker_line(&self, id: i32, msgid: i32) -> Result<()> {
+ sync!("requestSetMarkerLine", [id, msgid])
}
// // S->C calls
- pub fn mark_buffer_as_read(&mut self, id: BufferId) {
- self.set_buffer_activity(id, MessageType::NONE);
- self.set_highlight_count(id, 0);
+ pub fn mark_buffer_as_read(&mut self, id: BufferId) -> Result<()> {
+ self.set_buffer_activity(id, MessageType::NONE)?;
+ self.set_highlight_count(id, 0)?;
#[cfg(feature = "server")]
- sync!("markBufferAsRead", [id]);
+ return sync!("markBufferAsRead", [id]);
+
+ #[cfg(feature = "client")]
+ return Ok(());
}
- pub fn merge_buffers_permanently(&mut self, target: BufferId, source: BufferId) {
+ pub fn merge_buffers_permanently(&mut self, target: BufferId, source: BufferId) -> Result<()> {
if let Some(activities) = self.activities.remove(&source) {
*self.activities.entry(target).or_insert(MessageType::NONE) |= activities;
}
@@ -83,60 +86,81 @@ impl BufferSyncer {
}
#[cfg(feature = "server")]
- sync!("mergeBuffersPermanently", [source, target]);
+ return sync!("mergeBuffersPermanently", [source, target]);
+
+ #[cfg(feature = "client")]
+ return Ok(());
}
// TODO remove buffer from bufferviews
- pub fn remove_buffer(&mut self, id: BufferId) {
+ pub fn remove_buffer(&mut self, id: BufferId) -> Result<()> {
self.activities.remove(&id);
self.highlight_counts.remove(&id);
self.last_seen_msg.remove(&id);
self.marker_line.remove(&id);
#[cfg(feature = "server")]
- sync!("removeBuffer", [id]);
+ return sync!("removeBuffer", [id]);
+
+ #[cfg(feature = "client")]
+ return Ok(());
}
// TODO actually rename the buffer in whereever we should store buffers
// and the BufferView
#[allow(unused_variables)]
- pub fn rename_buffer(&mut self, id: i32, name: String) {
+ pub fn rename_buffer(&mut self, id: i32, name: String) -> Result<()> {
#[cfg(feature = "server")]
- sync!("renameBuffer", [id, name]);
+ return sync!("renameBuffer", [id, name]);
+
+ #[cfg(feature = "client")]
+ return Ok(());
}
- pub fn set_buffer_activity(&mut self, id: BufferId, activity: MessageType) {
+ pub fn set_buffer_activity(&mut self, id: BufferId, activity: MessageType) -> Result<()> {
*self.activities.entry(id).or_insert(MessageType::NONE) = activity;
#[cfg(feature = "server")]
- sync!("setBufferActivity", [id, activity.bits()]);
+ return sync!("setBufferActivity", [id, activity.bits()]);
+
+ #[cfg(feature = "client")]
+ return Ok(());
}
- pub fn set_highlight_count(&mut self, id: BufferId, count: i32) {
+ pub fn set_highlight_count(&mut self, id: BufferId, count: i32) -> Result<()> {
*self.highlight_counts.entry(id).or_default() = count;
#[cfg(feature = "server")]
- sync!("setHighlightCount", [id, count]);
+ return sync!("setHighlightCount", [id, count]);
+
+ #[cfg(feature = "client")]
+ return Ok(());
}
- pub fn set_last_seen_msg(&mut self, id: BufferId, msg_id: MsgId) {
+ pub fn set_last_seen_msg(&mut self, id: BufferId, msg_id: MsgId) -> Result<()> {
*self.last_seen_msg.entry(id).or_default() = msg_id;
#[cfg(feature = "server")]
- sync!("setHighlightCount", [id, msg_id]);
+ return sync!("setHighlightCount", [id, msg_id]);
+
+ #[cfg(feature = "client")]
+ return Ok(());
}
- pub fn set_marker_line(&mut self, id: BufferId, msg_id: MsgId) {
+ pub fn set_marker_line(&mut self, id: BufferId, msg_id: MsgId) -> Result<()> {
*self.marker_line.entry(id).or_default() = msg_id;
#[cfg(feature = "server")]
- sync!("setHighlightCount", [id, msg_id]);
+ return sync!("setHighlightCount", [id, msg_id]);
+
+ #[cfg(feature = "client")]
+ return Ok(());
}
}
#[cfg(feature = "client")]
impl crate::message::StatefulSyncableClient for BufferSyncer {
- fn sync_custom(&mut self, mut msg: crate::message::SyncMessage) -> Result<(), ProtocolError>
+ fn sync_custom(&mut self, mut msg: crate::message::SyncMessage) -> Result<()>
where
Self: Sized,
{
@@ -152,15 +176,14 @@ impl crate::message::StatefulSyncableClient for BufferSyncer {
"setHighlightCount" => self.set_highlight_count(get_param!(msg), get_param!(msg)),
"setLastSeenMsg" => self.set_last_seen_msg(get_param!(msg), get_param!(msg)),
"setMarkerLine" => self.set_marker_line(get_param!(msg), get_param!(msg)),
- _ => (),
+ _ => Ok(()),
}
- Ok(())
}
}
#[cfg(feature = "server")]
impl crate::message::StatefulSyncableServer for BufferSyncer {
- fn sync_custom(&mut self, mut msg: crate::message::SyncMessage) -> Result<(), ProtocolError>
+ fn sync_custom(&mut self, mut msg: crate::message::SyncMessage) -> Result<()>
where
Self: Sized,
{
@@ -169,14 +192,13 @@ impl crate::message::StatefulSyncableServer for BufferSyncer {
"requestMergeBuffersPermanently" => {
self.merge_buffers_permanently(get_param!(msg), get_param!(msg))
}
- "requestPurgeBufferIds" => (),
+ "requestPurgeBufferIds" => Ok(()),
"requestRemoveBuffer" => self.remove_buffer(get_param!(msg)),
"requestRenameBuffer" => self.rename_buffer(get_param!(msg), get_param!(msg)),
"requestSetLastSeenMsg" => self.set_last_seen_msg(get_param!(msg), get_param!(msg)),
"requestSetMarkerLine" => self.set_marker_line(get_param!(msg), get_param!(msg)),
- _ => (),
+ _ => Ok(()),
}
- Ok(())
}
}
@@ -289,6 +311,9 @@ 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()).unwrap(),
+ get_runtime()
+ )
}
}