use std::any::TypeId;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum ValueCodecExecutionError {
#[error("value codec for {expected_type} received incompatible type {actual_type:?}")]
TypeMismatch {
expected_type: &'static str,
actual_type: TypeId,
},
#[error("value codec {codec_type} failed to encode: {source}")]
EncodeFailed {
codec_type: &'static str,
#[source]
source: Box<dyn std::error::Error>,
},
#[error("value codec {codec_type} failed to decode: {source}")]
DecodeFailed {
codec_type: &'static str,
#[source]
source: Box<dyn std::error::Error>,
},
}