fix: scenegraph errors
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user