NeverMarker

Struct NeverMarker 

Source
pub struct NeverMarker<Y>(/* private fields */);
Expand description

A DataMarker that never returns data.

All types that have non-blanket impls of DataProvider<M> are expected to explicitly implement DataProvider<NeverMarker<Y>>, returning DataErrorKind::MissingDataKey. See impl_data_provider_never_marker!.

§Examples

use icu_locid::langid;
use icu_provider::hello_world::*;
use icu_provider::prelude::*;
use icu_provider::NeverMarker;

let buffer_provider = HelloWorldProvider.into_json_provider();

let result = DataProvider::<NeverMarker<HelloWorldV1<'static>>>::load(
    &buffer_provider.as_deserializing(),
    DataRequest {
        locale: &langid!("en").into(),
        metadata: Default::default(),
    },
);

assert!(matches!(
    result,
    Err(DataError {
        kind: DataErrorKind::MissingDataKey,
        ..
    })
));

Trait Implementations§

Source§

impl<Y: Clone> Clone for NeverMarker<Y>

Source§

fn clone(&self) -> NeverMarker<Y>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<Y> DataMarker for NeverMarker<Y>
where for<'a> Y: Yokeable<'a>,

Source§

type Yokeable = Y

A type that implements Yokeable. This should typically be the 'static version of a data struct.
Source§

impl<Y: Debug> Debug for NeverMarker<Y>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<Y> KeyedDataMarker for NeverMarker<Y>
where for<'a> Y: Yokeable<'a>,

Source§

const KEY: DataKey

The single DataKey associated with this marker.
Source§

fn bind<P>(provider: P) -> DataProviderWithKey<Self, P>
where P: DataProvider<Self>, Self: Sized,

Binds this KeyedDataMarker to a provider supporting it.
Source§

impl<Y: Copy> Copy for NeverMarker<Y>

Auto Trait Implementations§

§

impl<Y> Freeze for NeverMarker<Y>

§

impl<Y> RefUnwindSafe for NeverMarker<Y>
where Y: RefUnwindSafe,

§

impl<Y> Send for NeverMarker<Y>
where Y: Send,

§

impl<Y> Sync for NeverMarker<Y>
where Y: Sync,

§

impl<Y> Unpin for NeverMarker<Y>
where Y: Unpin,

§

impl<Y> UnwindSafe for NeverMarker<Y>
where Y: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 0 bytes