use core::fmt;
pub type Result<T> = core::result::Result<T, Error>;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Error {
BufferTooSmall,
InvalidHeader,
InvalidSubmessage,
EncodingError,
DecodingError,
TransportError,
NotInitialized,
EntityNotFound,
InvalidParameter,
ResourceExhausted,
Timeout,
InvalidData,
InvalidEncoding,
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Error::BufferTooSmall => write!(f, "Buffer too small"),
Error::InvalidHeader => write!(f, "Invalid RTPS header"),
Error::InvalidSubmessage => write!(f, "Invalid submessage"),
Error::EncodingError => write!(f, "CDR encoding error"),
Error::DecodingError => write!(f, "CDR decoding error"),
Error::TransportError => write!(f, "Transport error"),
Error::NotInitialized => write!(f, "Participant not initialized"),
Error::EntityNotFound => write!(f, "Entity not found"),
Error::InvalidParameter => write!(f, "Invalid parameter"),
Error::ResourceExhausted => write!(f, "Resource exhausted"),
Error::Timeout => write!(f, "Operation timed out"),
Error::InvalidData => write!(f, "Invalid or corrupted data"),
Error::InvalidEncoding => write!(f, "Invalid encoding"),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for Error {}