summaryrefslogtreecommitdiff
path: root/src/solvers/gpu/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/solvers/gpu/mod.rs')
-rw-r--r--src/solvers/gpu/mod.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/solvers/gpu/mod.rs b/src/solvers/gpu/mod.rs
index 17bc964..431c035 100644
--- a/src/solvers/gpu/mod.rs
+++ b/src/solvers/gpu/mod.rs
@@ -72,6 +72,45 @@ impl ResultMessage {
result
}
}
+use std::sync::mpsc::{RecvError, SendError};
+
+pub struct GpuError {
+ message: String,
+}
+
+impl<T> From<SendError<T>> for GpuError {
+ fn from(error: SendError<T>) -> Self {
+ Self {
+ message: format!("Gpu error occured: {}", error),
+ }
+ }
+}
+impl From<RecvError> for GpuError {
+ fn from(error: RecvError) -> Self {
+ Self {
+ message: format!("Gpu error occured: {}", error),
+ }
+ }
+}
+impl From<String> for GpuError {
+ fn from(error: String) -> Self {
+ Self {
+ message: format!("Gpu error occured: {}", error),
+ }
+ }
+}
+impl From<ocl::Error> for GpuError {
+ fn from(error: ocl::Error) -> Self {
+ Self {
+ message: format!("Gpu error occured: {}", error),
+ }
+ }
+}
+impl std::fmt::Display for GpuError {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ write!(f, "{}", self.message)
+ }
+}
#[derive(Debug)]
pub struct CheckRequest {