pub trait FilteredAggregateCapabilityProvider<C: ComponentInstanceInterface>: Send + Sync {
// Required methods
fn route_instances(
&self
) -> Vec<BoxFuture<'_, Result<FilteredAggregateCapabilityRouteData<C>, RoutingError>>>;
fn clone_boxed(&self) -> Box<dyn FilteredAggregateCapabilityProvider<C>>;
}
Expand description
A provider of a capability from an aggregation of zero or more offered instances of a capability, with filters.
This trait type-erases the capability type, so it can be handled and hosted generically.
Required Methods§
sourcefn route_instances(
&self
) -> Vec<BoxFuture<'_, Result<FilteredAggregateCapabilityRouteData<C>, RoutingError>>>
fn route_instances( &self ) -> Vec<BoxFuture<'_, Result<FilteredAggregateCapabilityRouteData<C>, RoutingError>>>
Return a list of futures to route every instance in the aggregate to its source. Each result is paired with the list of instances to include in the source.
sourcefn clone_boxed(&self) -> Box<dyn FilteredAggregateCapabilityProvider<C>>
fn clone_boxed(&self) -> Box<dyn FilteredAggregateCapabilityProvider<C>>
Trait-object compatible clone.