aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2021-11-30 18:45:42 +0100
committerMax Audron <audron@cocaine.farm>2021-11-30 18:45:42 +0100
commit5bb762ba5e5ef24bf25438d57dc8951f08072a91 (patch)
tree9ebcfa5e8e0dd136af93b8a3fb92ecf458ba353d /src
parentadd default and skip properties to Network derive macros (diff)
fix bufferviewconfig remove and add methods
Diffstat (limited to 'src')
-rw-r--r--src/message/signalproxy/mod.rs7
-rw-r--r--src/message/signalproxy/objects/bufferview.rs38
2 files changed, 27 insertions, 18 deletions
diff --git a/src/message/signalproxy/mod.rs b/src/message/signalproxy/mod.rs
index 9516105..d6490d4 100644
--- a/src/message/signalproxy/mod.rs
+++ b/src/message/signalproxy/mod.rs
@@ -54,12 +54,15 @@ impl SyncProxy {
function: &str,
params: VariantList,
) {
- self.sync_channel.send(SyncMessage {
+ let msg = SyncMessage {
class_name: class_name.to_string(),
object_name: object_name.unwrap_or("").to_string(),
slot_name: function.to_string(),
params,
- }).unwrap();
+ };
+
+ debug!("submitting {:#?}", msg);
+ self.sync_channel.send(msg).unwrap();
}
/// Send an RpcCall
diff --git a/src/message/signalproxy/objects/bufferview.rs b/src/message/signalproxy/objects/bufferview.rs
index 88ae56e..0e3c904 100644
--- a/src/message/signalproxy/objects/bufferview.rs
+++ b/src/message/signalproxy/objects/bufferview.rs
@@ -62,10 +62,8 @@ pub struct BufferViewConfig {
#[network(rename = "TemporarilyRemovedBuffers", network, variant = "VariantList")]
pub temporarily_removed_buffers: Vec<i32>,
- // TODO think about how to handle the buffer view id
- // we might introduce a default flag for the network macro
- // #[network(rename = "bufferViewId")]
- // pub buffer_view_id: i32,
+ #[network(rename = "bufferViewId", default, skip)]
+ pub buffer_view_id: i32,
#[network(rename = "bufferViewName")]
pub buffer_view_name: String,
#[network(rename = "networkId")]
@@ -123,10 +121,22 @@ impl BufferViewConfig {
self.buffers.insert(pos, id)
}
+ if let Some(old_pos) = self.removed_buffers.iter().position(|&x| x == id) {
+ self.removed_buffers.remove(old_pos);
+ }
+
+ if let Some(old_pos) = self.temporarily_removed_buffers.iter().position(|&x| x == id) {
+ self.temporarily_removed_buffers.remove(old_pos);
+ }
+
#[cfg(feature = "server")]
{
// TODO replace the None with self.buffer_view_id
- self.send_sync(None, "addBuffer", vec![id.into(), (pos as i32).into()])
+ self.send_sync(
+ Some(&self.buffer_view_id.to_string()),
+ "addBuffer",
+ vec![id.into(), (pos as i32).into()],
+ )
}
}
@@ -137,34 +147,30 @@ impl BufferViewConfig {
}
fn remove_buffer(&mut self, id: i32) {
- if self.buffers.contains(&id) {
- let old_pos = self.buffers.iter().position(|&x| x == id).unwrap();
+ if let Some(old_pos) = self.buffers.iter().position(|&x| x == id) {
self.buffers.remove(old_pos);
}
- if self.removed_buffers.contains(&id) {
- let old_pos = self.removed_buffers.iter().position(|&x| x == id).unwrap();
+ if let Some(old_pos) = self.removed_buffers.iter().position(|&x| x == id) {
self.removed_buffers.remove(old_pos);
}
if !self.temporarily_removed_buffers.contains(&id) {
- self.buffers.push(id)
+ self.temporarily_removed_buffers.push(id)
}
}
fn remove_buffer_permanently(&mut self, id: i32) {
- if self.buffers.contains(&id) {
- let old_pos = self.buffers.iter().position(|&x| x == id).unwrap();
+ if let Some(old_pos) = self.buffers.iter().position(|&x| x == id) {
self.buffers.remove(old_pos);
}
- if self.temporarily_removed_buffers.contains(&id) {
- let old_pos = self.removed_buffers.iter().position(|&x| x == id).unwrap();
- self.removed_buffers.remove(old_pos);
+ if let Some(old_pos) = self.temporarily_removed_buffers.iter().position(|&x| x == id) {
+ self.temporarily_removed_buffers.remove(old_pos);
}
if !self.removed_buffers.contains(&id) {
- self.buffers.push(id)
+ self.removed_buffers.push(id)
}
}
}