pub struct RuntimeProviderSlotResolver<S> { /* private fields */ }Expand description
Canonical first-match resolver for raw callback names.
Slot order is exactly RuntimeModel.variables() scalar order. An
unqualified edit therefore resolves in the allowed model universe rather
than by scanning mutable host schema state.
Implementations§
Source§impl<S> RuntimeProviderSlotResolver<S>
impl<S> RuntimeProviderSlotResolver<S>
pub fn new(slots: Vec<RuntimeScalarSlot<S>>) -> Result<Self, String>
pub fn slot_ids(&self) -> impl Iterator<Item = &RuntimeScalarSlotId>
pub fn resolve_and_normalize( &self, solution: &S, candidates: Vec<RawProviderCandidate>, allowed_slots: &[RuntimeScalarSlotId], reasons: &mut ProviderReasonArena, ) -> Result<Vec<ResolvedProviderCandidate<S>>, ProviderResolutionError>
Sourcepub fn resolve_and_normalize_with_state(
&self,
solution: &S,
candidates: Vec<RawProviderCandidate>,
allowed_slots: &[RuntimeScalarSlotId],
state: &mut ProviderNormalizationState,
reasons: &mut ProviderReasonArena,
) -> Result<Vec<ResolvedProviderCandidate<S>>, ProviderResolutionError>
pub fn resolve_and_normalize_with_state( &self, solution: &S, candidates: Vec<RawProviderCandidate>, allowed_slots: &[RuntimeScalarSlotId], state: &mut ProviderNormalizationState, reasons: &mut ProviderReasonArena, ) -> Result<Vec<ResolvedProviderCandidate<S>>, ProviderResolutionError>
Resolves raw candidates in returned order while applying deduplication in the explicit caller-owned scope.
Trait Implementations§
Source§impl<S> Clone for RuntimeProviderSlotResolver<S>
impl<S> Clone for RuntimeProviderSlotResolver<S>
Auto Trait Implementations§
impl<S> !RefUnwindSafe for RuntimeProviderSlotResolver<S>
impl<S> !UnwindSafe for RuntimeProviderSlotResolver<S>
impl<S> Freeze for RuntimeProviderSlotResolver<S>
impl<S> Send for RuntimeProviderSlotResolver<S>
impl<S> Sync for RuntimeProviderSlotResolver<S>
impl<S> Unpin for RuntimeProviderSlotResolver<S>
impl<S> UnsafeUnpin for RuntimeProviderSlotResolver<S>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more