Skip to main content

ProviderNode

Trait ProviderNode 

Source
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§

Source

fn id(&self) -> &str

Provider id.

Source

fn requires(&self) -> &[CapabilityId]

Provider graph hook.

Source

fn provides(&self) -> CapabilityId

Provider graph hook.

Source

fn cap_name(&self) -> &str

Provider graph hook.

Source

fn build(&self, env: &Env) -> Result<Env, ProviderError>

Provider graph hook.

Provided Methods§

Source

fn build_effect(&self, deps: &Env) -> Effect<Env, ProviderError, Env>

Provider graph hook.

Source

fn uses_effectful_build(&self) -> bool

Provider graph hook.

Source

fn optional_requires(&self) -> &[CapabilityId]

Provider graph hook.

Source

fn shared(&self) -> bool

Provider graph hook.

Source

fn refresh_interval(&self) -> Option<Duration>

Provider graph hook.

Source

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".

Implementors§