pub enum ResponsePayload<Payload = Box<RawValue>, ErrData = Box<RawValue>> {
Success(Payload),
Failure(ErrorPayload<ErrData>),
}Expand description
A JSON-RPC 2.0 response payload.
This enum covers both the success and error cases of a JSON-RPC 2.0
response. It is used to represent the result and error fields of a
response object.
§Note
This type does not implement Serialize or Deserialize directly. It is
deserialized as part of the Response type.
Variants§
Success(Payload)
A successful response payload.
Failure(ErrorPayload<ErrData>)
An error response payload.
Implementations§
Source§impl ResponsePayload<&RawValue, &RawValue>
impl ResponsePayload<&RawValue, &RawValue>
Sourcepub fn into_owned(self) -> ResponsePayload
pub fn into_owned(self) -> ResponsePayload
Convert this borrowed response payload into an owned payload by copying the data from the deserializer (if necessary).
Source§impl<Payload, ErrData> ResponsePayload<Payload, ErrData>
impl<Payload, ErrData> ResponsePayload<Payload, ErrData>
Sourcepub const fn parse_error() -> Self
pub const fn parse_error() -> Self
Create a new error payload for a parse error.
Sourcepub const fn invalid_request() -> Self
pub const fn invalid_request() -> Self
Create a new error payload for an invalid request.
Sourcepub const fn method_not_found() -> Self
pub const fn method_not_found() -> Self
Create a new error payload for a method not found error.
Sourcepub const fn invalid_params() -> Self
pub const fn invalid_params() -> Self
Create a new error payload for an invalid params error.
Sourcepub const fn internal_error() -> Self
pub const fn internal_error() -> Self
Create a new error payload for an internal error.
Sourcepub const fn internal_error_message(message: Cow<'static, str>) -> Self
pub const fn internal_error_message(message: Cow<'static, str>) -> Self
Create a new error payload for an internal error with a custom message.
Sourcepub const fn internal_error_with_obj(data: ErrData) -> Selfwhere
ErrData: RpcSend,
pub const fn internal_error_with_obj(data: ErrData) -> Selfwhere
ErrData: RpcSend,
Create a new error payload for an internal error with a custom message and additional data.
Sourcepub const fn internal_error_with_message_and_obj(
message: Cow<'static, str>,
data: ErrData,
) -> Selfwhere
ErrData: RpcSend,
pub const fn internal_error_with_message_and_obj(
message: Cow<'static, str>,
data: ErrData,
) -> Selfwhere
ErrData: RpcSend,
Create a new error payload for an internal error with a custom message and additional data.
Sourcepub const fn as_success(&self) -> Option<&Payload>
pub const fn as_success(&self) -> Option<&Payload>
Fallible conversion to the successful payload.
Sourcepub const fn as_error(&self) -> Option<&ErrorPayload<ErrData>>
pub const fn as_error(&self) -> Option<&ErrorPayload<ErrData>>
Fallible conversion to the error object.
Sourcepub fn try_into_success(self) -> Result<Payload, ErrorPayload<ErrData>>
pub fn try_into_success(self) -> Result<Payload, ErrorPayload<ErrData>>
Converts this type into a Result returning the ErrorPayload as Err.
Sourcepub fn error_code(&self) -> Option<i64>
pub fn error_code(&self) -> Option<i64>
Returns the error code if this a ResponsePayload::Failure
Sourcepub fn error_data(&self) -> Option<&ErrData>
pub fn error_data(&self) -> Option<&ErrData>
Returns the error data if this a ResponsePayload::Failure
Sourcepub const fn is_success(&self) -> bool
pub const fn is_success(&self) -> bool
Returns true if the response payload is a success.
Source§impl<Payload, ErrData> ResponsePayload<Payload, ErrData>
impl<Payload, ErrData> ResponsePayload<Payload, ErrData>
Sourcepub fn serialize_payload(&self) -> Result<ResponsePayload>
pub fn serialize_payload(&self) -> Result<ResponsePayload>
Convert the inner types into a RawValue by serializing them.
Source§impl<'a, Payload, ErrData> ResponsePayload<Payload, ErrData>
impl<'a, Payload, ErrData> ResponsePayload<Payload, ErrData>
Sourcepub fn try_success_as<T: Deserialize<'a>>(&'a self) -> Option<Result<T>>
pub fn try_success_as<T: Deserialize<'a>>(&'a self) -> Option<Result<T>>
Attempt to deserialize the success payload, borrowing from the payload if necessary.
§Returns
Noneif the payload is an errorSome(Ok(T))if the payload is a success and can be deserializedSome(Err(serde_json::Error))if the payload is a success and can’t be deserialized asT
Sourcepub fn deserialize_success<T: DeserializeOwned>(
self,
) -> Result<ResponsePayload<T, ErrData>, Self>
pub fn deserialize_success<T: DeserializeOwned>( self, ) -> Result<ResponsePayload<T, ErrData>, Self>
Deserialize a Success payload, if possible, transforming this type.
§Returns
Ok(ResponsePayload<T>)if the payload is an error, or if the payload is a success and can be deserialized asTErr(self)if the payload is a success and can’t be deserialized
Source§impl<'a, Payload, Data> ResponsePayload<Payload, Data>
impl<'a, Payload, Data> ResponsePayload<Payload, Data>
Sourcepub fn try_error_as<T: Deserialize<'a>>(&'a self) -> Option<Result<T>>
pub fn try_error_as<T: Deserialize<'a>>(&'a self) -> Option<Result<T>>
Attempt to deserialize the error payload, borrowing from the payload if necessary.
§Returns
Noneif the payload is a successSome(Ok(T))if the payload is an error and can be deserializedSome(Err(serde_json::Error))if the payload is an error and can’t be deserialized asT
Sourcepub fn deserialize_error<T: DeserializeOwned>(
self,
) -> Result<ResponsePayload<Payload, T>, Self>
pub fn deserialize_error<T: DeserializeOwned>( self, ) -> Result<ResponsePayload<Payload, T>, Self>
Deserialize an Error payload, if possible, transforming this type.
§Returns
Ok(ResponsePayload<Payload, T>)if the payload is an error, or if the payload is an error and can be deserialized asT.Err(self)if the payload is an error and can’t be deserialized.
Trait Implementations§
Source§impl<Payload: Clone, ErrData: Clone> Clone for ResponsePayload<Payload, ErrData>
impl<Payload: Clone, ErrData: Clone> Clone for ResponsePayload<Payload, ErrData>
Source§fn clone(&self) -> ResponsePayload<Payload, ErrData>
fn clone(&self) -> ResponsePayload<Payload, ErrData>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<Payload: PartialEq, ErrData: PartialEq> PartialEq for ResponsePayload<Payload, ErrData>
impl<Payload: PartialEq, ErrData: PartialEq> PartialEq for ResponsePayload<Payload, ErrData>
Source§fn eq(&self, other: &ResponsePayload<Payload, ErrData>) -> bool
fn eq(&self, other: &ResponsePayload<Payload, ErrData>) -> bool
self and other values to be equal, and is used by ==.impl<Payload: Eq, ErrData: Eq> Eq for ResponsePayload<Payload, ErrData>
impl<Payload, ErrData> StructuralPartialEq for ResponsePayload<Payload, ErrData>
Auto Trait Implementations§
impl<Payload, ErrData> Freeze for ResponsePayload<Payload, ErrData>
impl<Payload, ErrData> RefUnwindSafe for ResponsePayload<Payload, ErrData>where
Payload: RefUnwindSafe,
ErrData: RefUnwindSafe,
impl<Payload, ErrData> Send for ResponsePayload<Payload, ErrData>
impl<Payload, ErrData> Sync for ResponsePayload<Payload, ErrData>
impl<Payload, ErrData> Unpin for ResponsePayload<Payload, ErrData>
impl<Payload, ErrData> UnwindSafe for ResponsePayload<Payload, ErrData>where
Payload: UnwindSafe,
ErrData: UnwindSafe,
Blanket Implementations§
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.