pub struct SpeculationGate { /* private fields */ }Expand description
Decides whether a partial transcript revision is worth speculating on.
Two gates, both cheap: a debounce window, and a minimum amount of genuinely new content. Recognizers emit revisions far faster than retrieval can usefully run, and most revisions change nothing that would change the query.
Implementations§
Source§impl SpeculationGate
impl SpeculationGate
Sourcepub fn new(config: &TranscriptConfig) -> Self
pub fn new(config: &TranscriptConfig) -> Self
Build a gate from transcript configuration.
Sourcepub fn consider(
&mut self,
hypothesis: &TranscriptHypothesis,
has_strong_signal: bool,
now: Instant,
) -> SpeculationDecision
pub fn consider( &mut self, hypothesis: &TranscriptHypothesis, has_strong_signal: bool, now: Instant, ) -> SpeculationDecision
Decide whether to speculate on hypothesis at now.
A signal the deterministic extractor already recognised (a known entity, an explicit recall phrase) overrides both gates: those are exactly the cases where prefetching pays for itself.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SpeculationGate
impl RefUnwindSafe for SpeculationGate
impl Send for SpeculationGate
impl Sync for SpeculationGate
impl Unpin for SpeculationGate
impl UnwindSafe for SpeculationGate
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
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].