summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine-ecs/src/error.rs8
-rw-r--r--engine-ecs/src/lib.rs8
2 files changed, 10 insertions, 6 deletions
diff --git a/engine-ecs/src/error.rs b/engine-ecs/src/error.rs
index 185b706..c3da052 100644
--- a/engine-ecs/src/error.rs
+++ b/engine-ecs/src/error.rs
@@ -2,6 +2,8 @@ use std::fmt::{Debug, Display, Write as _};
use backtrace::Backtrace;
+use crate::World;
+
#[macro_export]
macro_rules! error {
($lit: literal) => {
@@ -132,7 +134,7 @@ where
}
}
-pub type ErrorHandler = fn(Error, Metadata);
+pub type HandlerFn = fn(&World, Error, Metadata);
/// Error metadata.
#[derive(Debug)]
@@ -162,7 +164,7 @@ impl Display for SourceKind
}
}
-pub fn err_handler_panic(mut err: Error, err_metadata: Metadata)
+pub fn err_handler_panic(_world: &World, mut err: Error, err_metadata: Metadata)
{
err.resolve_backtrace();
@@ -172,7 +174,7 @@ pub fn err_handler_panic(mut err: Error, err_metadata: Metadata)
);
}
-pub fn err_handler_log_error(err: Error, err_metadata: Metadata)
+pub fn err_handler_log_error(_world: &World, err: Error, err_metadata: Metadata)
{
tracing::error!(
"Error occurred in {} '{}': {err:#}",
diff --git a/engine-ecs/src/lib.rs b/engine-ecs/src/lib.rs
index 28b6b06..e9a28ab 100644
--- a/engine-ecs/src/lib.rs
+++ b/engine-ecs/src/lib.rs
@@ -19,7 +19,7 @@ use crate::component::{
use crate::entity::{Declaration as EntityDeclaration, Handle as EntityHandle, Name as EntityName};
use crate::error::{
err_handler_panic,
- ErrorHandler,
+ HandlerFn as ErrorHandlerFn,
Metadata as ErrorMetadata,
SourceKind as ErrorSourceKind,
};
@@ -87,7 +87,7 @@ pub struct World
data: WorldData,
stop: AtomicBool,
is_first_tick: AtomicBool,
- error_handler: ErrorHandler,
+ error_handler: ErrorHandlerFn,
}
impl World
@@ -109,7 +109,7 @@ impl World
world
}
- pub fn set_err_handler(&mut self, err_handler: ErrorHandler)
+ pub fn set_err_handler(&mut self, err_handler: ErrorHandlerFn)
{
self.error_handler = err_handler;
}
@@ -414,6 +414,7 @@ impl World
cold_path();
(self.error_handler)(
+ self,
err,
ErrorMetadata {
source_name: system.system.name(),
@@ -667,6 +668,7 @@ impl World
cold_path();
(self.error_handler)(
+ self,
err,
ErrorMetadata {
source_name: observer.name(),