use std::any::TypeId;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum ErasureError {
#[error(
"Neuron type mismatch: expected payload type {expected_payload_type:?} and codec type {expected_codec_type:?}, but found payload type {actual_payload_type:?} and codec type {actual_codec_type:?}"
)]
NeuronTypeMismatch {
expected_payload_type: TypeId,
expected_codec_type: TypeId,
actual_payload_type: TypeId,
actual_codec_type: TypeId,
},
#[error(
"Payload type mismatch: expected payload type {expected_payload_type:?} and codec type {expected_codec_type:?}, but found payload type {actual_payload_type:?} and codec type {actual_codec_type:?}"
)]
PayloadTypeMismatch {
expected_payload_type: TypeId,
expected_codec_type: TypeId,
actual_payload_type: TypeId,
actual_codec_type: TypeId,
},
#[error(
"Synapse type mismatch: expected payload type {expected_payload_type:?} and codec type {expected_codec_type:?}, but found payload type {actual_payload_type:?} and codec type {actual_codec_type:?}"
)]
SynapseTypeMismatch {
expected_payload_type: TypeId,
expected_codec_type: TypeId,
actual_payload_type: TypeId,
actual_codec_type: TypeId,
},
}
pub type ErasureResult<T> = Result<T, ErasureError>;