pub trait ProviderNode: Send + Sync {
// Required methods
fn id(&self) -> &str;
fn requires(&self) -> &[CapabilityId];
fn provides(&self) -> CapabilityId;
fn cap_name(&self) -> &str;
fn build(&self, env: &Env) -> Result<Env, ProviderError>;
// Provided methods
fn build_effect(&self, deps: &Env) -> Effect<Env, ProviderError, Env> { ... }
fn uses_effectful_build(&self) -> bool { ... }
fn optional_requires(&self) -> &[CapabilityId] { ... }
fn shared(&self) -> bool { ... }
fn refresh_interval(&self) -> Option<Duration> { ... }
fn shutdown_hook(&self) -> Option<Arc<dyn ShutdownHook>> { ... }
}Expand description
Erased provider for heterogeneous collections passed to super::run_with.
Required Methods§
Sourcefn requires(&self) -> &[CapabilityId]
fn requires(&self) -> &[CapabilityId]
Provider graph hook.
Sourcefn provides(&self) -> CapabilityId
fn provides(&self) -> CapabilityId
Provider graph hook.
Provided Methods§
Sourcefn build_effect(&self, deps: &Env) -> Effect<Env, ProviderError, Env>
fn build_effect(&self, deps: &Env) -> Effect<Env, ProviderError, Env>
Provider graph hook.
Sourcefn uses_effectful_build(&self) -> bool
fn uses_effectful_build(&self) -> bool
Provider graph hook.
Sourcefn optional_requires(&self) -> &[CapabilityId]
fn optional_requires(&self) -> &[CapabilityId]
Provider graph hook.
Provider graph hook.
Sourcefn refresh_interval(&self) -> Option<Duration>
fn refresh_interval(&self) -> Option<Duration>
Provider graph hook.
Sourcefn shutdown_hook(&self) -> Option<Arc<dyn ShutdownHook>>
fn shutdown_hook(&self) -> Option<Arc<dyn ShutdownHook>>
Provider graph hook.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".