pub struct OperationRuntimeRegistry<R>where
R: DeviceRuntime,{ /* private fields */ }Expand description
Composition-root registry that owns the exact provider objects used for both planning and runtime dispatch. A dispatch call receives only a bound handle issued by this registry, never an arbitrary provider implementation.
Implementations§
Source§impl<R> OperationRuntimeRegistry<R>where
R: DeviceRuntime,
impl<R> OperationRuntimeRegistry<R>where
R: DeviceRuntime,
pub fn new( contracts: Vec<Box<dyn OperationContract>>, providers: Vec<Box<dyn OperationProvider<R>>>, ) -> Result<Self, VNextError>
Sourcepub fn capability_catalog(
&self,
device: DeviceDescriptor,
engine_providers: Vec<EngineProviderDescriptor>,
) -> Result<CapabilityCatalog, VNextError>
pub fn capability_catalog( &self, device: DeviceDescriptor, engine_providers: Vec<EngineProviderDescriptor>, ) -> Result<CapabilityCatalog, VNextError>
Derives the planning catalog from the exact contract/provider objects retained for dispatch, preventing descriptor drift between two independently assembled registries.
pub fn planning(&self) -> OperationPlanningHandle<'_>
pub fn bind<'registry>( &'registry self, resolved: &dyn ExecutablePlanView, node_id: &NodeId, ) -> Result<BoundOperationProvider<'registry, R>, VNextError>
Sourcepub fn bind_plan(
&self,
resolved: &dyn ExecutablePlanView,
) -> Result<BoundOperationProviderSet<R>, VNextError>
pub fn bind_plan( &self, resolved: &dyn ExecutablePlanView, ) -> Result<BoundOperationProviderSet<R>, VNextError>
Binds every selected provider once in immutable plan-node order.
The returned handles own their provider objects, so execution can drop the composition registry and cannot re-enter provider lookup from the token loop.
Trait Implementations§
Source§impl<R> OperationPlanningRegistry for OperationRuntimeRegistry<R>where
R: DeviceRuntime,
impl<R> OperationPlanningRegistry for OperationRuntimeRegistry<R>where
R: DeviceRuntime,
fn contracts_for( &self, operation_id: &OperationId, ) -> Vec<&dyn OperationContract>
fn estimators_for( &self, provider_id: &ProviderId, ) -> Vec<&dyn OperationResourceEstimator>
Auto Trait Implementations§
impl<R> !RefUnwindSafe for OperationRuntimeRegistry<R>
impl<R> !UnwindSafe for OperationRuntimeRegistry<R>
impl<R> Freeze for OperationRuntimeRegistry<R>
impl<R> Send for OperationRuntimeRegistry<R>
impl<R> Sync for OperationRuntimeRegistry<R>
impl<R> Unpin for OperationRuntimeRegistry<R>
impl<R> UnsafeUnpin for OperationRuntimeRegistry<R>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more