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: DataResponseMetadataMetadata about the returned object.
payload: DataPayload<M>The object itself
Implementations§
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 DataResponse::dynamic_cast().
Sourcepub fn dynamic_cast<M2>(self) -> Result<DataResponse<M2>, DataError>where
M2: DynamicDataMarker,
pub fn dynamic_cast<M2>(self) -> Result<DataResponse<M2>, DataError>where
M2: DynamicDataMarker,
Convert a DataResponse to one of the same type with runtime type checking.
Primarily useful to convert from a generic to a concrete marker type.
If the M2 type argument does not match the true marker type, a DataError is returned.
For compile-time static casting, use DataResponse::cast().
Trait Implementations§
Source§impl<M> Clone for DataResponse<M>
Cloning a DataResponse is generally a cheap operation.
See notes in the Clone impl for Yoke.
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<HelloWorldV1> = todo!();
let resp2 = resp1.clone();