Trait icu_provider::erased::ErasedDataStruct [−][src]
pub trait ErasedDataStruct: 'static + Debug { fn clone_into_box(&self) -> Box<dyn ErasedDataStruct>; fn into_any(self: Box<Self>) -> Box<dyn Any>; fn as_any(&self) -> &dyn Any; }
Auto-implemented trait allowing for type erasure of data provider structs.
Requires the static lifetime in order to be convertible to Any
.
Required methods
fn clone_into_box(&self) -> Box<dyn ErasedDataStruct>
[src]
Clone this trait object reference, returning a boxed trait object.
fn into_any(self: Box<Self>) -> Box<dyn Any>
[src]
Return this boxed trait object as Box
<dyn
Any
>
.
Examples
use icu_provider::erased::ErasedDataStruct; use icu_provider::hello_world::HelloWorldV1; // Create type-erased box let erased: Box<dyn ErasedDataStruct> = Box::new(HelloWorldV1::default()); // Convert to typed box let boxed: Box<HelloWorldV1> = erased.into_any().downcast().expect("Types should match");
fn as_any(&self) -> &dyn Any
[src]
Return this trait object reference as &dyn
Any
.
Also see associated method downcast_ref()
.
Examples
use icu_provider::erased::ErasedDataStruct; use icu_provider::hello_world::HelloWorldV1; // Create type-erased reference let data = HelloWorldV1::default(); let erased: &dyn ErasedDataStruct = &data; // Borrow as typed reference let borrowed: &HelloWorldV1 = erased.as_any().downcast_ref().expect("Types should match");
Implementations
impl dyn ErasedDataStruct
[src]
impl dyn ErasedDataStruct
[src]pub fn downcast_ref<T: Any>(&self) -> Result<&T, Error>
[src]
Convenience function: Return a downcast reference, or an error if mismatched types.
Examples
use icu_provider::erased::ErasedDataStruct; use icu_provider::hello_world::HelloWorldV1; // Create type-erased reference let data = HelloWorldV1::default(); let erased: &dyn ErasedDataStruct = &data; // Borrow as typed reference let borrowed: &HelloWorldV1 = erased.downcast_ref().expect("Types should match");
Trait Implementations
impl DataExporter<'_, dyn ErasedDataStruct + 'static> for HelloWorldProvider<'static>
[src]
impl DataExporter<'_, dyn ErasedDataStruct + 'static> for HelloWorldProvider<'static>
[src]Adds entries to a HelloWorldProvider
from ErasedDataStruct
fn put_payload(
&mut self,
req: &DataRequest,
payload: &dyn ErasedDataStruct
) -> Result<(), Box<dyn Error>>
[src]
&mut self,
req: &DataRequest,
payload: &dyn ErasedDataStruct
) -> Result<(), Box<dyn Error>>
fn include_resource_options(&self, _resc_options: &ResourceOptions) -> bool
[src]
fn put_key_from_provider<'d>(
&mut self,
resc_key: &ResourceKey,
provider: &impl IterableDataProvider<'d, T>
) -> Result<(), Error> where
's: 'd,
[src]
&mut self,
resc_key: &ResourceKey,
provider: &impl IterableDataProvider<'d, T>
) -> Result<(), Error> where
's: 'd,
impl<'d, 's> DataProvider<'d, dyn ErasedDataStruct + 's> for HelloWorldProvider<'static> where
's: 'd,
[src]
impl<'d, 's> DataProvider<'d, dyn ErasedDataStruct + 's> for HelloWorldProvider<'static> where
's: 'd,
[src]fn load_payload(
&self,
req: &DataRequest
) -> Result<DataResponse<'d, dyn ErasedDataStruct + 's>, DataError>
[src]
&self,
req: &DataRequest
) -> Result<DataResponse<'d, dyn ErasedDataStruct + 's>, DataError>
impl<'s> ToOwned for dyn ErasedDataStruct + 's
[src]
impl<'s> ToOwned for dyn ErasedDataStruct + 's
[src]type Owned = Box<dyn ErasedDataStruct + 's>
The resulting type after obtaining ownership.
fn to_owned(&self) -> Self::Owned
[src]
pub fn clone_into(&self, target: &mut Self::Owned)
[src]
Implementors
Loading content...