#[non_exhaustive]pub enum StreamError {
RpcMethods(ProtoError),
ProxyInfoRejected(ErrorResponse),
NewStreamRejected(ErrorResponse),
StreamReleaseRejected(ErrorResponse),
NotAuthenticated,
NoSession,
Internal(String),
NoProxy,
Io(Arc<Error>),
SocksRequest(Error),
SocksProtocol(Error),
SocksError(SocksStatus),
}
Expand description
An error encountered while trying to open a data stream.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
RpcMethods(ProtoError)
One of the RPC methods that we invoked to create the stream failed.
ProxyInfoRejected(ErrorResponse)
We weren’t able to find a working proxy address.
NewStreamRejected(ErrorResponse)
We weren’t able to register a new stream ID.
StreamReleaseRejected(ErrorResponse)
We weren’t able to release a new stream ID.
NotAuthenticated
Tried to open a stream on an unauthenticated RPC connection.
(At present (Sep 2024) there is no way to get an unauthenticated connection from
arti-rpc-client-core
, but that may change in the future.)
NoSession
Tried to open a stream after having dropped the RPC session
(At present (Jan 2025) dropping the RPC session is possible, but is not supported when opening RPC streams.)
Internal(String)
We encountered an internal error. (This should be impossible.)
NoProxy
No SOCKS proxies were listed in the server’s reply.
Io(Arc<Error>)
We encountered an IO error while trying to connect to the proxy or negotiate SOCKS.
SocksRequest(Error)
The generated SOCKS request was invalid.
(Most likely, a provided isolation string or hostname was too long for the authentication system to support.)
SocksProtocol(Error)
The other side did not speak socks, or did not speak socks in the format we expected.
SocksError(SocksStatus)
The other side gave us a SOCKS error.
Trait Implementations§
Source§impl Clone for StreamError
impl Clone for StreamError
Source§fn clone(&self) -> StreamError
fn clone(&self) -> StreamError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for StreamError
impl Debug for StreamError
Source§impl Display for StreamError
impl Display for StreamError
Source§impl Error for StreamError
impl Error for StreamError
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
Source§impl From<Error> for StreamError
impl From<Error> for StreamError
Source§impl From<ProtoError> for StreamError
impl From<ProtoError> for StreamError
Source§fn from(source: ProtoError) -> Self
fn from(source: ProtoError) -> Self
Auto Trait Implementations§
impl Freeze for StreamError
impl !RefUnwindSafe for StreamError
impl Send for StreamError
impl Sync for StreamError
impl Unpin for StreamError
impl !UnwindSafe for StreamError
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<E> ErrorReport for Ewhere
E: Error + 'static,
impl<E> ErrorReport for Ewhere
E: Error + 'static,
Source§fn report(&self) -> Report<ReportHelper<'_>>
fn report(&self) -> Report<ReportHelper<'_>>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more