From 60f642364fbd6e7e717ff4f1a829b6f58d959498 Mon Sep 17 00:00:00 2001 From: Nova Date: Sat, 29 Oct 2022 07:32:51 -0400 Subject: [PATCH] refactor(node): return Result<&T> from get aspect --- src/nodes/fields/mod.rs | 1 + src/nodes/mod.rs | 5 ++--- src/nodes/spatial/mod.rs | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/nodes/fields/mod.rs b/src/nodes/fields/mod.rs index 7fe3e2d..1271107 100644 --- a/src/nodes/fields/mod.rs +++ b/src/nodes/fields/mod.rs @@ -209,4 +209,5 @@ pub fn find_field(client: &Client, path: &str) -> Result> { client .get_node("Field", path)? .get_aspect("Field", "info", |n| &n.field) + .cloned() } diff --git a/src/nodes/mod.rs b/src/nodes/mod.rs index b6e6082..276335a 100644 --- a/src/nodes/mod.rs +++ b/src/nodes/mod.rs @@ -153,14 +153,13 @@ impl Node { node_name: &'static str, aspect_type: &'static str, aspect_fn: F, - ) -> Result> + ) -> Result<&T> where - F: FnOnce(&Node) -> &OnceCell>, + F: FnOnce(&Node) -> &OnceCell, { aspect_fn(self) .get() .ok_or_else(|| anyhow!("{} is not a {} node", node_name, aspect_type)) - .cloned() } pub fn send_local_signal( diff --git a/src/nodes/spatial/mod.rs b/src/nodes/spatial/mod.rs index 97a5cf4..af9e7e6 100644 --- a/src/nodes/spatial/mod.rs +++ b/src/nodes/spatial/mod.rs @@ -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,