From be709efbdd528f9787f398d45a9887b414c07540 Mon Sep 17 00:00:00 2001 From: Nova Date: Thu, 31 Oct 2024 07:40:06 -0400 Subject: [PATCH] fix: scenegraph errors --- codegen/src/lib.rs | 6 +++--- src/core/scenegraph.rs | 6 +++--- src/nodes/mod.rs | 9 +++++---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/codegen/src/lib.rs b/codegen/src/lib.rs index 71d2c2b..4af4df8 100644 --- a/codegen/src/lib.rs +++ b/codegen/src/lib.rs @@ -286,7 +286,7 @@ fn generate_aspect(aspect: &Aspect) -> TokenStream { ) -> Result<(), stardust_xr::scenegraph::ScenegraphError> { match _signal { #run_signals - _ => Err(stardust_xr::scenegraph::ScenegraphError::SignalNotFound) + _ => Err(stardust_xr::scenegraph::ScenegraphError::MemberNotFound) } } #[allow(clippy::all)] @@ -301,7 +301,7 @@ fn generate_aspect(aspect: &Aspect) -> TokenStream { match _method { #run_methods _ => { - let _ = _method_response.send(Err(stardust_xr::scenegraph::ScenegraphError::MethodNotFound)); + let _ = _method_response.send(Err(stardust_xr::scenegraph::ScenegraphError::MemberNotFound)); } } } @@ -467,7 +467,7 @@ fn generate_run_member(aspect_name: &Ident, _type: MemberType, member: &Member) #opcode => (move || { #deserialize ::#member_name_ident(_node, _calling_client.clone(), #argument_uses) - })().map_err(|e: color_eyre::Report| stardust_xr::scenegraph::ScenegraphError::SignalError { error: e.to_string() }), + })().map_err(|e: color_eyre::Report| stardust_xr::scenegraph::ScenegraphError::MemberError { error: e.to_string() }), }, MemberType::Method => quote! { #opcode => _method_response.wrap_async(async move { diff --git a/src/core/scenegraph.rs b/src/core/scenegraph.rs index efbd103..5956639 100644 --- a/src/core/scenegraph.rs +++ b/src/core/scenegraph.rs @@ -60,7 +60,7 @@ impl MethodResponseSender { // let _ = self.0.send(map_method_return(result)); // } pub fn wrap_sync color_eyre::eyre::Result>(self, f: F) { - self.send(f().map_err(|e| ScenegraphError::MethodError { + self.send(f().map_err(|e| ScenegraphError::MemberError { error: e.to_string(), })) } @@ -74,11 +74,11 @@ impl MethodResponseSender { fn map_method_return( result: color_eyre::eyre::Result<(T, Vec)>, ) -> Result<(Vec, Vec), ScenegraphError> { - let (value, fds) = result.map_err(|e| ScenegraphError::MethodError { + let (value, fds) = result.map_err(|e| ScenegraphError::MemberError { error: e.to_string(), })?; - let serialized_value = serialize(value).map_err(|e| ScenegraphError::MethodError { + let serialized_value = serialize(value).map_err(|e| ScenegraphError::MemberError { error: format!("Internal: Serialization failed: {e}"), })?; Ok((serialized_value, fds)) diff --git a/src/nodes/mod.rs b/src/nodes/mod.rs index aaa5ca9..44824de 100644 --- a/src/nodes/mod.rs +++ b/src/nodes/mod.rs @@ -129,7 +129,8 @@ impl Node { .global_transform() .to_scale_rotation_translation() .0 - .length_squared() > 0.0 + .length_squared() + > 0.0 } else { true } @@ -176,7 +177,7 @@ impl Node { ) -> Result<(), ScenegraphError> { if let Ok(alias) = self.get_aspect::() { if !alias.info.server_signals.iter().any(|e| *e == method) { - return Err(ScenegraphError::SignalNotFound); + return Err(ScenegraphError::MemberNotFound); } alias .original @@ -193,7 +194,7 @@ impl Node { .clone(); aspect .run_signal(calling_client, self.clone(), method, message) - .map_err(|error| ScenegraphError::SignalError { + .map_err(|error| ScenegraphError::MemberError { error: error.to_string(), }) } @@ -208,7 +209,7 @@ impl Node { ) { if let Ok(alias) = self.get_aspect::() { if !alias.info.server_methods.iter().any(|e| *e == method) { - response.send(Err(ScenegraphError::MethodNotFound)); + response.send(Err(ScenegraphError::MemberNotFound)); return; } let Some(alias) = alias.original.upgrade() else {