#[repr(transparent)]
pub struct Demand<'a>(_);
Available on nightly only.
Expand description

A helper object for providing data by type.

A data provider provides values by calling this type’s provide methods.

Implementations

Provide a value or other type with only static lifetimes.

Examples

Provides a String by cloning.

use error_stack::provider::{Demand, Provider};

impl Provider for SomeConcreteType {
    fn provide<'a>(&'a self, demand: &mut Demand<'a>) {
        demand.provide_value::<String, _>(|| self.field.clone());
    }
}

Provide a reference, note that the referee type must be bounded by 'static, but may be unsized.

Examples

Provides a reference to a field as a &str.

use error_stack::provider::{Demand, Provider};

impl Provider for SomeConcreteType {
    fn provide<'a>(&'a self, demand: &mut Demand<'a>) {
        demand.provide_ref::<str>(&self.field);
    }
}

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more