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: RpcObject,
pub const fn internal_error_with_obj(data: ErrData) -> Selfwhere
ErrData: RpcObject,
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: RpcObject,
pub const fn internal_error_with_message_and_obj(
message: Cow<'static, str>,
data: ErrData,
) -> Selfwhere
ErrData: RpcObject,
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 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
None
if 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 asT
Err(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
None
if 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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)