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: ResourceKeydata: &'d T

Trait Implementations

impl<'d, T> DataProvider<'d, T> for StructProvider<'d, T> where
    T: Clone + Debug + Sized + 'd, 
[src]

Auto Trait Implementations

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> Sync for StructProvider<'d, T> where
    T: Sync

impl<'d, T> Unpin for StructProvider<'d, T>

impl<'d, T> UnwindSafe for StructProvider<'d, T> where
    T: RefUnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.