use crate::protocol::dds::RtpsError;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Ros2Error {
InvalidTopicName,
InvalidTypeName,
NameBufferTooSmall,
InvalidLogLevel,
UnknownParameterType,
TooManyParameters,
TooManyArrayElements,
Rtps(RtpsError),
}
impl From<RtpsError> for Ros2Error {
fn from(e: RtpsError) -> Self {
Ros2Error::Rtps(e)
}
}
impl core::fmt::Display for Ros2Error {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Ros2Error::InvalidTopicName => f.write_str("ros2: invalid topic name"),
Ros2Error::InvalidTypeName => f.write_str("ros2: invalid type name"),
Ros2Error::NameBufferTooSmall => f.write_str("ros2: name buffer too small"),
Ros2Error::InvalidLogLevel => f.write_str("ros2: invalid log level"),
Ros2Error::UnknownParameterType => f.write_str("ros2: unknown parameter type"),
Ros2Error::TooManyParameters => f.write_str("ros2: too many parameters"),
Ros2Error::TooManyArrayElements => f.write_str("ros2: too many array elements"),
Ros2Error::Rtps(e) => write!(f, "ros2: rtps: {}", e),
}
}
}