Add inner value for SendError to Error type field

Signed-off-by: Trivernis <trivernis@protonmail.com>
main
Trivernis 4 years ago
parent 9070f7d48e
commit 4db82ad2c8

@ -4,7 +4,7 @@ description = "OpenCL Stream execution framework"
repository = "https://github.com/parallel-programming-hwr/ocl-stream-rs"
license = "Apache-2.0"
readme = "README.md"
version = "0.3.2"
version = "0.3.3"
authors = ["Trivernis <trivernis@protonmail.com>"]
edition = "2018"

@ -79,19 +79,15 @@ where
impl<T> OCLStreamSender<T>
where
T: Send + Sync,
T: Send + Sync + 'static,
{
/// Sends a value into the channel
pub fn send(&self, value: T) -> OCLStreamResult<()> {
self.tx
.send(Ok(value))
.map_err(|_| OCLStreamError::SendError)
self.tx.send(Ok(value)).map_err(OCLStreamError::from)
}
/// Sends an error into the channel
pub fn err(&self, err: OCLStreamError) -> OCLStreamResult<()> {
self.tx
.send(Err(err))
.map_err(|_| OCLStreamError::SendError)
self.tx.send(Err(err)).map_err(OCLStreamError::from)
}
}

@ -5,6 +5,8 @@
*/
use crossbeam_channel::RecvError;
use crossbeam_channel::SendError;
use std::error::Error;
use thiserror::Error;
pub type OCLStreamResult<T> = Result<T, OCLStreamError>;
@ -18,7 +20,7 @@ pub enum OCLStreamError {
RecvError(#[from] RecvError),
#[error("Stream Send Error")]
SendError,
SendError(#[from] Box<dyn Error + Send + Sync>),
}
impl From<ocl::Error> for OCLStreamError {
@ -26,3 +28,12 @@ impl From<ocl::Error> for OCLStreamError {
Self::OCLError(format!("{}", e))
}
}
impl<T: 'static> From<SendError<T>> for OCLStreamError
where
T: Send + Sync,
{
fn from(e: SendError<T>) -> Self {
Self::SendError(Box::new(e))
}
}

Loading…
Cancel
Save