//! Different variant error use core::fmt; /// An error type indicating that a [`TryFrom`](core::convert::TryFrom) call failed because the /// original value was of a different variant. #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct DifferentVariant; impl fmt::Display for DifferentVariant { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "value was of a different variant than required") } } #[cfg(feature = "std")] impl std::error::Error for DifferentVariant {} impl From for crate::Error { fn from(err: DifferentVariant) -> Self { Self::DifferentVariant(err) } } impl TryFrom for DifferentVariant { type Error = Self; fn try_from(err: crate::Error) -> Result { match err { crate::Error::DifferentVariant(err) => Ok(err), _ => Err(Self), } } }