diff options
Diffstat (limited to 'src/solvers/gpu/mod.rs')
-rw-r--r-- | src/solvers/gpu/mod.rs | 39 |
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 { |