[−][src]Enum xi_rpc::RemoteError
Errors that can be received from the other side of the RPC channel.
This type is intended to go over the wire. And by convention
should Serialize
as a JSON object with "code", "message",
and optionally "data" fields.
The xi RPC protocol defines one error: RemoteError::InvalidRequest
,
represented by error code -32600
; however codes in the range
-32700 ... -32000
(inclusive) are reserved for compatability with
the JSON-RPC spec.
Examples
An invalid request:
use xi_rpc::RemoteError; use serde_json::Value; let json = r#"{ "code": -32600, "message": "Invalid request", "data": "Additional details" }"#; let err = serde_json::from_str::<RemoteError>(&json).unwrap(); assert_eq!(err, RemoteError::InvalidRequest( Some(Value::String("Additional details".into()))));
A custom error:
use xi_rpc::RemoteError; use serde_json::Value; let json = r#"{ "code": 404, "message": "Not Found" }"#; let err = serde_json::from_str::<RemoteError>(&json).unwrap(); assert_eq!(err, RemoteError::custom(404, "Not Found", None));
Variants
InvalidRequest(Option<Value>)
The JSON was valid, but was not a correctly formed request.
This Error is used internally, and should not be returned by clients.
Custom
A custom error, defined by the client.
Fields of Custom
Unknown(Value)
An error that cannot be represented by an error object.
This error is intended to accommodate clients that return arbitrary error values. It should not be used for new errors.
Methods
impl RemoteError
[src]
pub fn custom<S, V>(code: i64, message: S, data: V) -> Self where
S: AsRef<str>,
V: Into<Option<Value>>,
[src]
S: AsRef<str>,
V: Into<Option<Value>>,
Creates a new custom error.
Trait Implementations
impl PartialEq<RemoteError> for RemoteError
[src]
fn eq(&self, other: &RemoteError) -> bool
[src]
fn ne(&self, other: &RemoteError) -> bool
[src]
impl From<Error> for RemoteError
[src]
fn from(err: JsonError) -> RemoteError
[src]
impl From<RemoteError> for Error
[src]
fn from(err: RemoteError) -> Error
[src]
impl Clone for RemoteError
[src]
fn clone(&self) -> RemoteError
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Debug for RemoteError
[src]
impl Serialize for RemoteError
[src]
impl<'de> Deserialize<'de> for RemoteError
[src]
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>,
[src]
D: Deserializer<'de>,
Auto Trait Implementations
impl Send for RemoteError
impl Unpin for RemoteError
impl Sync for RemoteError
impl UnwindSafe for RemoteError
impl RefUnwindSafe for RemoteError
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,