fix: scenegraph errors

This commit is contained in:
Nova
2024-10-31 07:40:06 -04:00
parent 4f01bd5eec
commit be709efbdd
3 changed files with 11 additions and 10 deletions

View File

@@ -286,7 +286,7 @@ fn generate_aspect(aspect: &Aspect) -> TokenStream {
) -> Result<(), stardust_xr::scenegraph::ScenegraphError> { ) -> Result<(), stardust_xr::scenegraph::ScenegraphError> {
match _signal { match _signal {
#run_signals #run_signals
_ => Err(stardust_xr::scenegraph::ScenegraphError::SignalNotFound) _ => Err(stardust_xr::scenegraph::ScenegraphError::MemberNotFound)
} }
} }
#[allow(clippy::all)] #[allow(clippy::all)]
@@ -301,7 +301,7 @@ fn generate_aspect(aspect: &Aspect) -> TokenStream {
match _method { match _method {
#run_methods #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 || { #opcode => (move || {
#deserialize #deserialize
<Self as #aspect_name>::#member_name_ident(_node, _calling_client.clone(), #argument_uses) <Self as #aspect_name>::#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! { MemberType::Method => quote! {
#opcode => _method_response.wrap_async(async move { #opcode => _method_response.wrap_async(async move {

View File

@@ -60,7 +60,7 @@ impl MethodResponseSender {
// let _ = self.0.send(map_method_return(result)); // let _ = self.0.send(map_method_return(result));
// } // }
pub fn wrap_sync<F: FnOnce() -> color_eyre::eyre::Result<Message>>(self, f: F) { pub fn wrap_sync<F: FnOnce() -> color_eyre::eyre::Result<Message>>(self, f: F) {
self.send(f().map_err(|e| ScenegraphError::MethodError { self.send(f().map_err(|e| ScenegraphError::MemberError {
error: e.to_string(), error: e.to_string(),
})) }))
} }
@@ -74,11 +74,11 @@ impl MethodResponseSender {
fn map_method_return<T: Serialize>( fn map_method_return<T: Serialize>(
result: color_eyre::eyre::Result<(T, Vec<OwnedFd>)>, result: color_eyre::eyre::Result<(T, Vec<OwnedFd>)>,
) -> Result<(Vec<u8>, Vec<OwnedFd>), ScenegraphError> { ) -> Result<(Vec<u8>, Vec<OwnedFd>), ScenegraphError> {
let (value, fds) = result.map_err(|e| ScenegraphError::MethodError { let (value, fds) = result.map_err(|e| ScenegraphError::MemberError {
error: e.to_string(), 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}"), error: format!("Internal: Serialization failed: {e}"),
})?; })?;
Ok((serialized_value, fds)) Ok((serialized_value, fds))

View File

@@ -129,7 +129,8 @@ impl Node {
.global_transform() .global_transform()
.to_scale_rotation_translation() .to_scale_rotation_translation()
.0 .0
.length_squared() > 0.0 .length_squared()
> 0.0
} else { } else {
true true
} }
@@ -176,7 +177,7 @@ impl Node {
) -> Result<(), ScenegraphError> { ) -> Result<(), ScenegraphError> {
if let Ok(alias) = self.get_aspect::<Alias>() { if let Ok(alias) = self.get_aspect::<Alias>() {
if !alias.info.server_signals.iter().any(|e| *e == method) { if !alias.info.server_signals.iter().any(|e| *e == method) {
return Err(ScenegraphError::SignalNotFound); return Err(ScenegraphError::MemberNotFound);
} }
alias alias
.original .original
@@ -193,7 +194,7 @@ impl Node {
.clone(); .clone();
aspect aspect
.run_signal(calling_client, self.clone(), method, message) .run_signal(calling_client, self.clone(), method, message)
.map_err(|error| ScenegraphError::SignalError { .map_err(|error| ScenegraphError::MemberError {
error: error.to_string(), error: error.to_string(),
}) })
} }
@@ -208,7 +209,7 @@ impl Node {
) { ) {
if let Ok(alias) = self.get_aspect::<Alias>() { if let Ok(alias) = self.get_aspect::<Alias>() {
if !alias.info.server_methods.iter().any(|e| *e == method) { if !alias.info.server_methods.iter().any(|e| *e == method) {
response.send(Err(ScenegraphError::MethodNotFound)); response.send(Err(ScenegraphError::MemberNotFound));
return; return;
} }
let Some(alias) = alias.original.upgrade() else { let Some(alias) = alias.original.upgrade() else {