pub struct NanoRosError { /* private fields */ }Expand description
Main error type for nros operations
This error type provides comprehensive coverage of all failure modes in nros, with optional context information (topic name, service name, etc.) when available.
§Error Categories
- Serialization: CDR encoding/decoding failures
- Transport: Network and communication failures
- Node/Context: Node creation and management failures
- Publisher/Subscriber: Pub/sub failures
- Service/Client: Service call failures
- Action: Action server/client failures
- Timer: Timer management failures
- Parameter: Parameter declaration/access failures
§Example
use nros_core::NanoRosError;
let err = NanoRosError::timeout();
assert!(err.is_timeout());
assert!(!err.is_take_failed());
// Errors with context
let err = NanoRosError::topic_name_invalid("/invalid topic!");
assert!(err.context().is_some());Implementations§
Source§impl NanoRosError
impl NanoRosError
Sourcepub const fn new(code: RclReturnCode) -> Self
pub const fn new(code: RclReturnCode) -> Self
Create a new error with the given code
Sourcepub const fn with_context(code: RclReturnCode, context: ErrorContext) -> Self
pub const fn with_context(code: RclReturnCode, context: ErrorContext) -> Self
Create a new error with context
Sourcepub const fn invalid_argument() -> Self
pub const fn invalid_argument() -> Self
Create an invalid argument error
Sourcepub const fn unsupported() -> Self
pub const fn unsupported() -> Self
Create an unsupported operation error
Sourcepub const fn node_invalid() -> Self
pub const fn node_invalid() -> Self
Create an invalid node error
Sourcepub const fn node_invalid_name(name: &'static str) -> Self
pub const fn node_invalid_name(name: &'static str) -> Self
Create an invalid node name error with context
Sourcepub const fn node_invalid_namespace(namespace: &'static str) -> Self
pub const fn node_invalid_namespace(namespace: &'static str) -> Self
Create an invalid node namespace error with context
Sourcepub const fn topic_name_invalid(topic: &'static str) -> Self
pub const fn topic_name_invalid(topic: &'static str) -> Self
Create an invalid topic name error with context
Sourcepub const fn publisher_invalid() -> Self
pub const fn publisher_invalid() -> Self
Create a publisher invalid error
Sourcepub const fn subscription_invalid() -> Self
pub const fn subscription_invalid() -> Self
Create a subscription invalid error
Sourcepub const fn subscription_take_failed() -> Self
pub const fn subscription_take_failed() -> Self
Create a subscription take failed error
Sourcepub const fn service_name_invalid(service: &'static str) -> Self
pub const fn service_name_invalid(service: &'static str) -> Self
Create an invalid service name error with context
Sourcepub const fn service_invalid() -> Self
pub const fn service_invalid() -> Self
Create a service invalid error
Sourcepub const fn service_take_failed() -> Self
pub const fn service_take_failed() -> Self
Create a service take failed error
Sourcepub const fn client_invalid() -> Self
pub const fn client_invalid() -> Self
Create a client invalid error
Sourcepub const fn client_take_failed() -> Self
pub const fn client_take_failed() -> Self
Create a client take failed error
Sourcepub const fn timer_invalid() -> Self
pub const fn timer_invalid() -> Self
Create a timer invalid error
Sourcepub const fn timer_canceled() -> Self
pub const fn timer_canceled() -> Self
Create a timer canceled error
Sourcepub const fn action_goal_rejected() -> Self
pub const fn action_goal_rejected() -> Self
Create an action goal rejected error
Sourcepub const fn action_client_invalid() -> Self
pub const fn action_client_invalid() -> Self
Create an action client invalid error
Sourcepub const fn action_server_invalid() -> Self
pub const fn action_server_invalid() -> Self
Create an action server invalid error
Sourcepub const fn action_goal_handle_invalid() -> Self
pub const fn action_goal_handle_invalid() -> Self
Create an action goal handle invalid error
Sourcepub const fn already_init() -> Self
pub const fn already_init() -> Self
Create an already initialized error
Sourcepub const fn already_shutdown() -> Self
pub const fn already_shutdown() -> Self
Create an already shutdown error
Sourcepub fn serialization(err: SerError) -> Self
pub fn serialization(err: SerError) -> Self
Create a serialization error
Sourcepub fn deserialization(err: DeserError) -> Self
pub fn deserialization(err: DeserError) -> Self
Create a deserialization error
Sourcepub const fn code(&self) -> RclReturnCode
pub const fn code(&self) -> RclReturnCode
Returns the error code
Sourcepub const fn context(&self) -> Option<&ErrorContext>
pub const fn context(&self) -> Option<&ErrorContext>
Returns the error context, if any
Sourcepub const fn nested(&self) -> Option<&NestedError>
pub const fn nested(&self) -> Option<&NestedError>
Returns the nested error, if any
Sourcepub const fn is_timeout(&self) -> bool
pub const fn is_timeout(&self) -> bool
Returns true if this error was due to a timeout
Sourcepub const fn is_take_failed(&self) -> bool
pub const fn is_take_failed(&self) -> bool
Returns true if this error was because a take operation failed (subscription, service, client, or action take failed)
Sourcepub const fn is_action_error(&self) -> bool
pub const fn is_action_error(&self) -> bool
Returns true if this is an action-related error
Sourcepub const fn is_serialization_error(&self) -> bool
pub const fn is_serialization_error(&self) -> bool
Returns true if this is a serialization or deserialization error
Trait Implementations§
Source§impl Clone for NanoRosError
impl Clone for NanoRosError
Source§fn clone(&self) -> NanoRosError
fn clone(&self) -> NanoRosError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NanoRosError
impl Debug for NanoRosError
Source§impl Display for NanoRosError
impl Display for NanoRosError
Source§impl Error for NanoRosError
Available on crate feature std only.
impl Error for NanoRosError
std only.Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()