Skip to main content

NodeError

Enum NodeError 

Source
pub enum NodeError {
Show 15 variants Transport(TransportError), NameTooLong, Serialization, Deserialization, BufferTooSmall, ActionCreationFailed, ServiceRequestFailed, ServiceReplyFailed, Timeout, NotInitialized, RequestInFlight, NoSchedContextSlot, InvalidSchedContextBinding, NodeTableFull, BackendMismatch,
}
Expand description

Error type for generic embedded node operations.

Not CopyNodeError::Transport wraps a TransportError which carries owned diagnostic strings (Backend / BackendDynamic). Rust callers that matched on NodeError by value may need ref arms or .clone(); C/C++ callers are unaffected (they see an integer nros_ret_t).

Variants§

§

Transport(TransportError)

Transport-level error.

§

NameTooLong

Node name exceeds 64 bytes.

§

Serialization

CDR serialization failed.

§

Deserialization

CDR deserialization failed.

§

BufferTooSmall

Buffer too small for message.

§

ActionCreationFailed

Action server/client creation failed.

§

ServiceRequestFailed

Service request failed.

§

ServiceReplyFailed

Service reply failed.

§

Timeout

Operation timed out.

§

NotInitialized

A required subsystem has not been initialized (e.g. parameter services have not been registered on the executor).

§

RequestInFlight

The client / action client already has a request in flight that hasn’t been consumed. Phase 84.D3: fixes the hazard where dropping a Promise without awaiting its reply left the stale reply queued to be delivered to the next call. Resolve by either polling the existing promise to completion or calling reset_in_flight().

§

NoSchedContextSlot

Phase 110.B — create_sched_context ran out of slots (MAX_SC exceeded).

§

InvalidSchedContextBinding

Phase 110.B — bind_handle_to_sched_context was called with an out-of-range handle, an empty entry slot, or an unknown SchedContextId.

§

NodeTableFull

Phase 104.C.2 — Executor::node_builder(...).build() was called when the per-Executor node table is full (NROS_EXECUTOR_MAX_NODES reached).

§

BackendMismatch

Phase 104.C.2 — requested RMW backend does not match the Executor’s open session (single-session restriction lifts in Phase 104.C.3 when the per-Node session cache lands).

Trait Implementations§

Source§

impl Clone for NodeError

Source§

fn clone(&self) -> NodeError

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NodeError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<DeserError> for NodeError

Source§

fn from(_: DeserError) -> Self

Converts to this type from the input type.
Source§

impl From<SerError> for NodeError

Source§

fn from(_: SerError) -> Self

Converts to this type from the input type.
Source§

impl From<TransportError> for NodeError

Source§

fn from(err: TransportError) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for NodeError

Source§

fn eq(&self, other: &NodeError) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for NodeError

Source§

impl StructuralPartialEq for NodeError

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.