refactor(node): return Result<&T> from get aspect

This commit is contained in:
Nova
2022-10-29 07:32:51 -04:00
parent 454318b0af
commit 60f642364f
3 changed files with 4 additions and 3 deletions

View File

@@ -209,4 +209,5 @@ pub fn find_field(client: &Client, path: &str) -> Result<Arc<Field>> {
client
.get_node("Field", path)?
.get_aspect("Field", "info", |n| &n.field)
.cloned()
}

View File

@@ -153,14 +153,13 @@ impl Node {
node_name: &'static str,
aspect_type: &'static str,
aspect_fn: F,
) -> Result<Arc<T>>
) -> Result<&T>
where
F: FnOnce(&Node) -> &OnceCell<Arc<T>>,
F: FnOnce(&Node) -> &OnceCell<T>,
{
aspect_fn(self)
.get()
.ok_or_else(|| anyhow!("{} is not a {} node", node_name, aspect_type))
.cloned()
}
pub fn send_local_signal(

View File

@@ -299,6 +299,7 @@ pub fn find_spatial(
calling_client
.get_node(node_name, node_path)?
.get_aspect(node_name, "spatial", |n| &n.spatial)
.cloned()
}
pub fn find_spatial_parent(
calling_client: &Arc<Client>,