diff options
author | Dennis Kobert <dennis@kobert.dev> | 2020-01-15 01:20:04 +0100 |
---|---|---|
committer | Dennis Kobert <dennis@kobert.dev> | 2020-01-15 01:20:04 +0100 |
commit | 042641ea2cfe3ad53eeae5c0cc311bf46f587d07 (patch) | |
tree | 658382f12075477c56736c0b0a02c445908bcd70 /src/solvers/gpu/mod.rs | |
parent | edf667921eef9d31e49edb025d7a2bf018edc314 (diff) |
Add better error handling instead of unwapping everything
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 { |