pub trait Provider {
// Required method
fn provide<'a>(&'a self, demand: &mut Demand<'a>);
}
🔬This is a nightly-only experimental API. (
provide_any
#96024)Expand description
Trait 由可以根据类型动态提供值的类型实现。
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
#96024)数据提供者应实现此方法以提供他们能够通过使用 demand
提供的所有值。
请注意,Demand
上的 provide_*
方法具有短路语义: 如果较早的方法已成功提供值,则以后的方法将没有机会提供。
Examples
提供对类型为 String
的字段的引用作为 &str
,以及类型为 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);
}
}
Run