Enum onc_rpc::Error

source ·
#[non_exhaustive]
pub enum Error {
Show 13 variants IncompleteMessage { buffer_len: usize, expected: usize, }, IncompleteHeader, Fragmented, InvalidMessageType(u32), InvalidReplyType(u32), InvalidReplyStatus(u32), InvalidAuthData, InvalidAuthError(u32), InvalidRejectedReplyType(u32), InvalidLength, InvalidRpcVersion(u32), InvalidMachineName(Utf8Error), IOError(ErrorKind, String),
}
Expand description

Error types returned by this crate.

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.
§

IncompleteMessage

The message header indicates the RPC message is longer than the amount of data in the buffer, or the buffer contains more than one message.

This error may also be returned if the RPC message parsed from the buffer is unexpectedly shorter than the header length indicates - in this case, buffer_len will be more than expected and may indicate a parsing error.

Fields

§buffer_len: usize

The length of the buffer provided.

§expected: usize

The length expected for this message type.

§

IncompleteHeader

The buffer is too small to contain the RPC header.

§

Fragmented

The RPC message is fragmented and needs to be reassembled.

This library doesn’t currently support fragmented messages and this error will be returned when parsing any message with the “last fragment” bit unset in the header.

§

InvalidMessageType(u32)

The message type in the RPC request is neither MessageType::Call or MessageType::Reply.

This is a violation of the spec.

§

InvalidReplyType(u32)

The message type in the RPC request is neither ReplyBody::Accepted or ReplyBody::Denied.

This is a violation of the spec.

§

InvalidReplyStatus(u32)

The reply status code is not one of the specified status codes.

This is a violation of the spec.

§

InvalidAuthData

The auth or verifier is invalid or malformed.

§

InvalidAuthError(u32)

The auth error code is not one of the specified error codes.

This is a violation of the spec.

§

InvalidRejectedReplyType(u32)

The rejected reply status code is not one of the specified status codes.

This is a violation of the spec.

§

InvalidLength

A variable length type has a malformed length value which would exceed the length of the buffer.

§

InvalidRpcVersion(u32)

The message contains a rpc protocol identifier that is not 2.

§

InvalidMachineName(Utf8Error)

The machine name contains non-UTF8 characters.

§

IOError(ErrorKind, String)

An I/O error occurred when trying to parse the buffer.

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

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

impl Error for Error

source§

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

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 From<Error> for Error

source§

fn from(v: Error) -> Self

Converts to this type from the input type.
source§

impl From<Utf8Error> for Error

source§

fn from(source: Utf8Error) -> Self

Converts to this type from the input type.
source§

impl PartialEq for Error

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for Error

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

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

source§

default 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>,

§

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>,

§

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.