Struct icu_provider::DataResponse
source · pub struct DataResponse<M>where
M: DynamicDataMarker,{
pub metadata: DataResponseMetadata,
pub payload: DataPayload<M>,
}
Expand description
A response object containing an object as payload and metadata about it.
Fields§
§metadata: DataResponseMetadata
Metadata about the returned object.
payload: DataPayload<M>
The object itself
Implementations§
source§impl<M> DataResponse<M>
impl<M> DataResponse<M>
sourcepub fn wrap_into_any_response(self) -> AnyResponse
pub fn wrap_into_any_response(self) -> AnyResponse
Moves the inner DataPayload to the heap (requiring an allocation) and returns it as an
erased AnyResponse
.
source§impl<M> DataResponse<M>where
M: DynamicDataMarker,
impl<M> DataResponse<M>where
M: DynamicDataMarker,
sourcepub fn cast<M2>(self) -> DataResponse<M2>where
M2: DynamicDataMarker<DataStruct = M::DataStruct>,
pub fn cast<M2>(self) -> DataResponse<M2>where
M2: DynamicDataMarker<DataStruct = M::DataStruct>,
Convert between two DynamicDataMarker
types that are compatible with each other
with compile-time type checking.
This happens if they both have the same DynamicDataMarker::DataStruct
type.
Can be used to erase the marker of a data payload in cases where multiple markers correspond to the same data struct.
For runtime dynamic casting, use DataPayload::dynamic_cast_mut()
.
Trait Implementations§
source§impl<M> Clone for DataResponse<M>
impl<M> Clone for DataResponse<M>
Cloning a DataResponse is generally a cheap operation.
See notes in the Clone
impl for [Yoke
].
§Examples
use icu_provider::hello_world::*;
use icu_provider::prelude::*;
let resp1: DataResponse<HelloWorldV1Marker> = todo!();
let resp2 = resp1.clone();
source§impl<M> Debug for DataResponse<M>
impl<M> Debug for DataResponse<M>
source§impl From<AnyResponse> for DataResponse<AnyMarker>
impl From<AnyResponse> for DataResponse<AnyMarker>
source§fn from(other: AnyResponse) -> Self
fn from(other: AnyResponse) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<M> Freeze for DataResponse<M>
impl<M> RefUnwindSafe for DataResponse<M>
impl<M> Send for DataResponse<M>
impl<M> Sync for DataResponse<M>
impl<M> Unpin for DataResponse<M>
impl<M> UnwindSafe for DataResponse<M>
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
Mutably borrows from an owned value. Read more
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)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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>
Converts
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>
Converts
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