aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects/bufferviewmanager.rs
diff options
context:
space:
mode:
authorMax Audron <me@audron.dev>2026-02-22 15:19:49 +0100
committerMax Audron <me@audron.dev>2026-02-22 15:19:49 +0100
commit9110ff85313ea9bf5ee93f60122ce5660accede2 (patch)
tree0c4b8553a63ae269475d380cb5f1b365498b6297 /src/message/signalproxy/objects/bufferviewmanager.rs
parentadd more git remotes (diff)
NetworkMap error handling
Diffstat (limited to 'src/message/signalproxy/objects/bufferviewmanager.rs')
-rw-r--r--src/message/signalproxy/objects/bufferviewmanager.rs22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/message/signalproxy/objects/bufferviewmanager.rs b/src/message/signalproxy/objects/bufferviewmanager.rs
index 341fec2..5942375 100644
--- a/src/message/signalproxy/objects/bufferviewmanager.rs
+++ b/src/message/signalproxy/objects/bufferviewmanager.rs
@@ -24,15 +24,17 @@ pub struct BufferViewManager {
// TODO add buffer view configs, where does the data come from?
impl BufferViewManager {
pub fn request_create_buffer_view(&self, properties: BufferViewConfig) -> Result<()> {
- sync!("requestCreateBufferView", [properties.to_network_map()])
+ sync!("requestCreateBufferView", [properties.to_network_map()?])
}
pub fn request_create_buffer_views(&self, properties: &[BufferViewConfig]) -> Result<()> {
+ let properties = properties.iter().map(|view| view.to_network_map()).collect::<Result<Vec<VariantMap>>>()?;
+
self.send_sync(
"requestCreateBufferViews",
properties
- .iter()
- .map(|view| view.to_network_map().into())
+ .into_iter()
+ .map(|view| view.into())
.collect(),
)
}
@@ -109,11 +111,11 @@ impl StatefulSyncableServer for BufferViewManager {
match msg.slot_name.as_str() {
"requestCreateBufferView" => self.add_buffer_view_config(BufferViewConfig::from_network_map(
&mut msg.params.remove(0).try_into()?,
- )),
+ )?),
"requestCreateBufferViews" => {
let views: VariantList = msg.params.remove(0).try_into()?;
for view in views.into_iter() {
- self.add_buffer_view_config(BufferViewConfig::from_network_map(&mut view.try_into()?))?
+ self.add_buffer_view_config(BufferViewConfig::from_network_map(&mut view.try_into()?)?)?
}
Ok(())
}
@@ -165,7 +167,7 @@ impl super::NetworkList for BufferViewManager {
impl super::NetworkMap for BufferViewManager {
type Item = VariantMap;
- fn to_network_map(&self) -> Self::Item {
+ fn to_network_map(&self) -> Result<Self::Item> {
let mut res = VariantMap::new();
res.insert(
@@ -173,13 +175,13 @@ impl super::NetworkMap for BufferViewManager {
Variant::VariantList(self.buffer_view_configs.keys().map(|k| i32::into(*k)).collect()),
);
- res
+ Ok(res)
}
- fn from_network_map(_input: &mut Self::Item) -> Self {
+ fn from_network_map(_input: &mut Self::Item) -> Result<Self> {
// TODO Somehow do the initrequests for all the IDs we get here
- Self {
+ Ok(Self {
buffer_view_configs: HashMap::new(),
- }
+ })
}
}