Struct icu_provider::struct_provider::StructProvider [−][src]
pub struct StructProvider<'d, T> { pub key: ResourceKey, pub data: &'d T, }
A data provider that unconditionally returns references to borrowed data.
Examples
use icu_provider::prelude::*; use icu_provider::struct_provider::StructProvider; use std::borrow::Cow; use std::default::Default; #[derive(Clone, Debug, PartialEq)] struct SampleDataStruct<'s> { value: &'s str, } let local_data = SampleDataStruct { value: &"hello world".to_string(), }; // A placeholder key to use to serve the data struct const SAMPLE_KEY: ResourceKey = icu_provider::resource_key!(x, "xyz", "example", 1); let provider = StructProvider { key: SAMPLE_KEY, data: &local_data, }; let payload: Cow<SampleDataStruct> = provider.load_payload(&DataRequest::from(SAMPLE_KEY)) .expect("Load should succeed") .payload.take() .expect("Data should be present"); assert_eq!(*payload, local_data); assert!(matches!(payload, Cow::Borrowed(_)))
Fields
key: ResourceKey
data: &'d T
Trait Implementations
impl<'d, T> DataProvider<'d, T> for StructProvider<'d, T> where
T: Clone + Debug + Sized + 'd,
[src]
impl<'d, T> DataProvider<'d, T> for StructProvider<'d, T> where
T: Clone + Debug + Sized + 'd,
[src]fn load_payload(&self, req: &DataRequest) -> Result<DataResponse<'d, T>, Error>
[src]
Auto Trait Implementations
impl<'d, T> RefUnwindSafe for StructProvider<'d, T> where
T: RefUnwindSafe,
impl<'d, T> RefUnwindSafe for StructProvider<'d, T> where
T: RefUnwindSafe,
impl<'d, T> Send for StructProvider<'d, T> where
T: Sync,
impl<'d, T> Send for StructProvider<'d, T> where
T: Sync,
impl<'d, T> Sync for StructProvider<'d, T> where
T: Sync,
impl<'d, T> Sync for StructProvider<'d, T> where
T: Sync,
impl<'d, T> Unpin for StructProvider<'d, T>
impl<'d, T> Unpin for StructProvider<'d, T>
impl<'d, T> UnwindSafe for StructProvider<'d, T> where
T: RefUnwindSafe,
impl<'d, T> UnwindSafe for StructProvider<'d, T> where
T: RefUnwindSafe,