fix(items): make acceptor fields non-optional

This commit is contained in:
Nova
2023-01-28 11:12:51 -05:00
parent c46e01e280
commit a434c2aa55

View File

@@ -262,17 +262,13 @@ impl ItemUI {
let Some(node) = self.node.upgrade() else { return }; let Some(node) = self.node.upgrade() else { return };
let Some(client) = node.get_client() else { return }; let Some(client) = node.get_client() else { return };
let (alias, field_alias) = acceptor.make_aliases( let Ok((alias, field_alias)) = acceptor.make_aliases(
&client, &client,
&format!("/item/{}/acceptor", self.type_info.type_name), &format!("/item/{}/acceptor", self.type_info.type_name),
); ) else {return};
if let Ok(alias) = alias { self.acceptor_aliases.add(acceptor.uid.clone(), &alias);
self.acceptor_aliases.add(acceptor.uid.clone(), &alias); self.acceptor_field_aliases
} .add(acceptor.uid.clone(), &field_alias);
if let Some(Ok(field_alias)) = field_alias {
self.acceptor_field_aliases
.add(acceptor.uid.clone(), &field_alias);
}
let _ = node.send_remote_signal("create_acceptor", &serialize(&acceptor.uid).unwrap()); let _ = node.send_remote_signal("create_acceptor", &serialize(&acceptor.uid).unwrap());
} }
fn handle_destroy_acceptor(&self, acceptor: &ItemAcceptor) { fn handle_destroy_acceptor(&self, acceptor: &ItemAcceptor) {
@@ -320,11 +316,7 @@ impl ItemAcceptor {
Ok(()) Ok(())
} }
fn make_aliases( fn make_aliases(&self, client: &Arc<Client>, parent: &str) -> Result<(Arc<Node>, Arc<Node>)> {
&self,
client: &Arc<Client>,
parent: &str,
) -> (Result<Arc<Node>>, Option<Result<Arc<Node>>>) {
let acceptor_node = &self.node.upgrade().unwrap(); let acceptor_node = &self.node.upgrade().unwrap();
let acceptor_alias = Alias::create( let acceptor_alias = Alias::create(
client, client,
@@ -335,19 +327,17 @@ impl ItemAcceptor {
local_signals: vec!["capture"], local_signals: vec!["capture"],
..Default::default() ..Default::default()
}, },
); )?;
let acceptor_field_alias = acceptor_alias.as_ref().ok().map(|acceptor_alias| { let acceptor_field_alias = Alias::create(
Alias::create( client,
client, acceptor_alias.get_path(),
acceptor_alias.get_path(), "field",
"field", &self.field.spatial_ref().node.upgrade().unwrap(),
&self.field.spatial_ref().node.upgrade().unwrap(), AliasInfo::default(),
AliasInfo::default(), )?;
)
});
(acceptor_alias, acceptor_field_alias) Ok((acceptor_alias, acceptor_field_alias))
} }
fn handle_capture(&self, item: &Arc<Item>) { fn handle_capture(&self, item: &Arc<Item>) {
let Some(node) = self.node.upgrade() else { return }; let Some(node) = self.node.upgrade() else { return };