Trait scale_info::prelude::any::Provider
source · 🔬This is a nightly-only experimental API. (
provide_any
)Expand description
Trait implemented by a type which can dynamically provide values based on type.
Required Methods§
sourcefn provide<'a>(&'a self, demand: &mut Demand<'a>)
fn provide<'a>(&'a self, demand: &mut Demand<'a>)
🔬This is a nightly-only experimental API. (
provide_any
)Data providers should implement this method to provide all values they are able to
provide by using demand
.
Note that the provide_*
methods on Demand
have short-circuit semantics: if an earlier
method has successfully provided a value, then later methods will not get an opportunity to
provide.
Examples
Provides a reference to a field with type String
as a &str
, and a value of
type i32
.
use std::any::{Provider, Demand};
impl Provider for SomeConcreteType {
fn provide<'a>(&'a self, demand: &mut Demand<'a>) {
demand.provide_ref::<str>(&self.field)
.provide_value::<i32>(self.num_field);
}
}