Skip to main content

RithmicError

Enum RithmicError 

Source
#[non_exhaustive]
pub enum RithmicError { ConnectionFailed(String), ConnectionClosed, SendFailed, EmptyResponse, RequestRejected(RithmicRequestError), ProtocolError(String), InvalidArgument(String), HeartbeatTimeout, ForcedLogout(String), }
Expand description

Typed errors returned by all plant handle methods.

match handle.subscribe("ESH6", "CME").await {
    Ok(resp) => { /* success */ }
    Err(RithmicError::ConnectionClosed | RithmicError::SendFailed) => {
        handle.abort();
        // reconnect — see examples/reconnect.rs
    }
    Err(RithmicError::InvalidArgument(msg)) => eprintln!("bad input: {msg}"),
    Err(RithmicError::RequestRejected(err)) => {
        eprintln!(
            "rejected code={} msg={}",
            err.code.as_deref().unwrap_or("?"),
            err.message.as_deref().unwrap_or(""),
        );
    }
    Err(e) => eprintln!("{e}"),
}

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

ConnectionFailed(String)

WebSocket connection could not be established.

§

ConnectionClosed

The plant’s WebSocket connection is gone; pending requests will never complete.

§

SendFailed

WebSocket send failed or timed out after the request was registered.

Treat as a connection-health failure. This error alone does not prove the actor has shut down; keep-alive failure detection can still emit crate::rti::messages::RithmicMessage::HeartbeatTimeout or crate::rti::messages::RithmicMessage::ConnectionError if the connection is actually dead.

§

EmptyResponse

Server returned an empty response where at least one was expected.

§

RequestRejected(RithmicRequestError)

Structured protocol-level rejection preserving the Rithmic rp_code tuple. Not a reconnect signal — request-level only.

§

ProtocolError(String)

Non-transport, non-rp_code response failure (e.g. decode failures or other protocol-level outcomes that don’t carry rp_code). Not a reconnect signal.

§

InvalidArgument(String)

A caller-supplied argument is invalid (the message describes which argument and why).

§

HeartbeatTimeout

Keep-alive detected the connection is dead.

§

ForcedLogout(String)

Server terminated the session with a reason string.

Implementations§

Source§

impl RithmicError

Source

pub fn is_connection_issue(&self) -> bool

Returns true when this error reflects a transport/connection-health failure rather than a protocol-level rejection.

Source

pub fn as_connection_message(&self) -> RithmicMessage

Maps this error to the synthetic subscription RithmicMessage that a connection-health broadcast should carry. HeartbeatTimeout preserves the keep-alive signal; every other variant surfaces as ConnectionError.

Trait Implementations§

Source§

impl Clone for RithmicError

Source§

fn clone(&self) -> RithmicError

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 RithmicError

Source§

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

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

impl Display for RithmicError

Source§

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

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

impl Error for RithmicError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl PartialEq for RithmicError

Source§

fn eq(&self, other: &RithmicError) -> 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 RithmicError

Source§

impl StructuralPartialEq for RithmicError

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more